1.java序列化的目的:
将一个对象转化成一串二进制表示的字节数组。通过保存和转移这些字节数组达到持久化的目的。
2.序列化的好处:
不用像class文件中需要保存完整的结构信息,在反序列化的时候需要原始类作为模板,存储体积小,便与传输。
3.序列化后二进制文件内容:
A.声明序列化协议,版本
B.序列化类的描述,完整类名,序列化ID(如果没有指定,算法随机生成一个8字节的ID)。主要用于反序列化。
C.对象中各个属性的描述
D.输出父类信息描述,有的话数据格式和B相同。
E.对象的属性项的实际值,如果属性是一个对象,将序列化这个对象(必须也实现Serializable接口,否则报错)。
4.java序列化的缺点:
无法用java外的语言反序列化,所以再多语言环境下尽量存储通用的JSON或者XML数据结构。