对象序列化、反序列化概念介绍
序列化:把对象转化为字节数组的过程称为对象的序列化。
反序列化:把字节数组恢复为对象的过程称为对象的反序列化。
序列化的两种用途
1.把对象的字节序列永久保存到硬盘上
2.在网络上传送对象的字节序列 --默认的序列化不安全,可以自定义序列化
需要序列化的对象需要实现java.io.Serializable接口(没有方法,是一个标识接口)。
类不参加序列化的字段
1.静态变量(static修饰)
2.transient修饰的变量
不参与序列化的字段,反序列化的实例中会被设为该类型默认值。
Java.io.Externalizable与java.io.Serializable
java.io.Externalizable是java.io.Serializable的子接口,使用起来更灵活,可以控制序列化哪些字段和反序列化哪些字段
serialVersionUID序列号的作用
答:实现序列化接口的类,jvm在反序列化的时候,将字节流中的serialVersionUID与本地实体类的serialVersionUID相比较,如果相同,可以进行反序列化,否则抛出异常。