编程语言
首页 > 编程语言> > 深入学习java源码之Object.writeObject()与Object.readObject()

深入学习java源码之Object.writeObject()与Object.readObject()

作者:互联网

对象的输出流: ObjectOutputStream
对象的输入流:  ObjectInputStream

java.io.ObjectOutputStream是实现序列化的关键类,它可以将一个对象转换成二进制流,然后可以通过ObjectInputStream将二进制流还原成对象。

主要的作用是用于写入对象信息与读取对象信息。 对象信息一旦写到文件上那么对象的信息就可以做到持久化了

序列化相关的基础知识: 
1、需要序列化的类必须实现java.io.Serializable接口,否则会抛出NotSerializableException异常 
2、如果检测到反序列化后的类的serialVersionUID和对象二进制流的serialVersionUID不同,则会抛出异常。 
3、Java的序列化会将一个类包含的引用中所有的成员变量保存下来(深度复制),所以里面的引用类型必须也要实现java.io.Serializable接口。 
4、对于不采用默认序列化或无须序列化的成员变量,可以添加transient关键字,并不是说添加了transient关键字就一定不能序列化。 
5、每个类可以实现readObject、writeObject方法实现自己的序列化策略,即使是transient修饰的成员变量也可以手动调用ObjectOutputStream的writeInt等方法将这个成员变量序列化。

标签:Object,java,对象,transient,readObject,源码,io,ObjectOutputStream,序列化
来源: https://blog.csdn.net/weixin_45029827/article/details/123598619