第十二章《文件与I/O流》第4节:对象序列化
创始人
2024-02-28 10:09:16
0

对象序列化和反序列化是Java程序中经常涉及的操作,Java语言提供了专门用于序列化对象的ObjectOutputStream类和用于反序列化的ObjectInputStream类,这使得Java语言完成序列化及反序列化的操作变得非常容易。

12.4.1什么是对象序列化

对象的序列化是指把一个对象转换为字节序列的过程。对象的序列化简称序列化,而把一组字节序列反向恢复为一个对象的过程叫做反序列化。序列化是为了保存或传输对象,因为只有把对象转换成字节序列,才能用字节流将其存入数据源或在网络上进行传输。ObjectOutputStream是Java语言中专门用于对象序列化的类,它不仅能实现对象的序列化,还能把序列化所产生的字节序列写入数据源。相应的,ObjectInputStream类用来实现反序列化,把字节序列恢复成一个对象。

Java语言中并不是所有类的对象都能够实现序列化,只有实现了Serializable接口的类的对象才能实现序列化。Serializable是一个标志性接口,它并没有定义抽象方法,一个类实现了Serializable接口就如同被贴上了标签,表明这个类的对象能够被序列化。一个类如果可以序列化,那么它的子类也一定是可以序列化的。如果对一个不可以序列化的类对象进行序列化,将会出现NotSerializableException。对一个对象进行序列化操作时,不仅会把对象的基础数据类型属性保存下来,还会把对象中的成员对象也保存下来。如果对象中包含了没有实现Serializable接口的成员对象,那将在对对象

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...