这一期长沙达内培训机构的java老师跟大家谈谈:实现序列化的基本算法! 每个对象都是对应着唯一的一个序列号,而每个对象在被保存的时候也是根据这个序列号来对应着每个不同的对象,对象序列化就是指利用了每个对象的序列号进行保存和读取的。首先以写对象到流中为例,对于每个对象,*一次遇到的时候会将这个对象的基本信息保存到流中,如果当前遇到的对象已经被保存过了,就不会再次保存这些信息,转而记录此对象的序列号(因为数据没必要重复保存)。对于读的情况,从流中遇到的每个对象,如果*一次遇到,直接输出,如果读取到的是某个对象的序列号,就会找到相关联的对象,输出。
说明几点,一个对象要想是可序列化的,就必须实现接口java.io.serializable;,这是一个标记接口,不用实现任何的方法。而我们的objectoutputstream流,就是一个可以将对象信息转为字节的流,构造函数如下:
public objectoutputstream(outputstream out)
也就是所有字节流都可以作为参数传入,兼容一切字节操作。在这个流中定义了writeobject和readobject方法,实现了序列化对象和反序列化对象。当然,我们也是可以通过在类中实现这两个方法来自定义序列化机制,具体的后文介绍。此处我们只需要了解整个序列化机制,所有的对象数据只会保存一份,至于相同的对象再次出现,只保存对应的序列号。下面,通过两个特殊的情况直观的感受下他的这个基本算法。
这就是今天长沙达内培训机构的java老师跟大家分享的知识,大家如果在老师的讲述中有好的建议或看法,都可以跟老师分享噢!
编辑短信:姓名+电话+想要学习课程 发送至:18487146383,发送短信即可获得1000元免费7天试听机会哦!
联系人:李老师
电话(微信):18487146383
网站:http://cs.java.tedu.cn
昆明达内职业培训学校
18087159764