Java教程

深入学习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等方法将这个成员变量序列化。

这篇关于深入学习java源码之Object.writeObject()与Object.readObject()的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!