最新回答 / 墓中幻相
反序列化出来的是一个对象,对象就好比new Student();创建出来的实例化对象它是在堆内存里的;而把实例化的对象赋值给变量也就是 Object p = new Student(); 这个变量p只是个变量,他在栈内存里,存储的是右边堆内存里对象的引用地址。而输出这个变量P的话实际上也是输出他存储的引用地址
2019-07-08
最赞回答 / qq_prisoner_4
我自己回答一下吧。read方法返回值赋给b不能在while体外,否则将执行无限循环。相当于b是给定的不为-1的值,而在while循环中,b是一直在检验的,检验输入流是否读取到文件末端。
2019-07-03
最新回答 / 慕容6015769
//空文件夹可以打出来 private void print(File dir){ if(dir==null){ System.out.println(dir + " is null"); } if(!dir.isDirectory()){ System.out.println(dir + " not is directory"...
2019-05-19
最赞回答 / 1315020626
这个序列化意思是,当你序列化一个文件并且写入的时候,在你写入的数据文件中是有实现了序列化接口的那些类的信息。这样你反序列化,他们都存在就不会重新创建了。但是如果你父类没有序列化,子类序列化了,当你序列化写的时候,父类是没有被写入的,当你反序列化读取的时候,你读取到了子类,但是没有发现父类,此时就会去调用父类的构造方法了,此时就有输出了
2019-05-12
最新回答 / 慕雪9554338
这是byte转化integer时出现的问题(因为用的是integer的方法),因为byte在java中是有正负的整数,所以转为integer是也是相应的整数,integer存储大小为4个字节,而byte为一个字节,存在相应扩展,负数是补码存储,所以是前面添1,正数是原码存储所以添0,最后转化为16进制数,前面的0省略,而1不能省略,所以通过&0xff取后八位有效位
2019-03-19