已采纳回答 / mutou3443
b是你本次读到的字节数,其中b<= buf.length。读满的时候b= buf.length,读到最后一次的时候很可能b< buf.length,这个时候buf里面一共有b(<buf.length)个字节,你fos.write(buf, 0, buf.length)就数组越界了。
2016-07-11
java.io.InvalidClassException: com.imooc.io.Student;
local class incompatible: stream classdesc serialVersionUID = 4927798595076767980,
local class serialVersionUID = -769763990727330733
UID不一样,就无法进行反序列化
在com.imooc.io.Student类中添加:
private static final long serialVersionUID = 4927798595076767980L;
local class incompatible: stream classdesc serialVersionUID = 4927798595076767980,
local class serialVersionUID = -769763990727330733
UID不一样,就无法进行反序列化
在com.imooc.io.Student类中添加:
private static final long serialVersionUID = 4927798595076767980L;
2016-07-09
已采纳回答 / tlojy
stuage是通过s.writeInt(stuage)写入的,这里只有一个transient int型,读的时候自然没问题,如果有两个transient int型是按照写入的顺序读取的。假设stusex=1,stuage=20,比如写入顺序是:s.writeInt(stusex); s.writeInt(stuage);第一次执行s.readInt()会读取1,再次执行s.readInt()会读取20,如果还想再执行s.readInt()会报java.io.EOFException异常。
2016-07-07
最新回答 / 要做Java大师
所以其实父类需不需要序列化接口是要根据实际情况判断的,看你的父类对象需不需要被传输。这一节是想告诉我们在你的父类实现或者没有实现序列化接口后,在反序列化时会发生的情况。所以~知道这个和性能没有太大关系,还是要看实际情况啦
2016-07-06
已采纳回答 / 要做Java大师
public static String toHexString(int i)这个是本方法的声明,一个一个解答问题,它的参数是整型的。在java中int类型就是四个字节的,所以如果实参是四个字节是不会发生类型转换的啊,其实有点没明白为什么问这个问题,是不是因为视频中出现的 .toHexString(char b&0xff)这个句子,会觉得里面是16位的数据?其实做这个主要是为了防止char转成int 类型由于计算机补码存储方式的原因,要专门设置最高位符号位。由于char类型是16位二进制的(两字节...
2016-07-06