首页 理论教育 Java服务端研发知识图谱-序列化实例

Java服务端研发知识图谱-序列化实例

时间:2023-11-22 理论教育 版权反馈
【摘要】:当把一个Java的对象存入文件或者进行网络通信时,需要把一个对象转为一串数据,并可以再反转回一个对象,这就是序列化的需求。代码如下:运行结果如下:address name=beijing longitude=116.23 latitude=39.54 person=null在此例中,Address类继承了Serializable接口,并且对person字段标注了transient,表示无需序列化。

Java服务端研发知识图谱-序列化实例

当把一个Java的对象存入文件或者进行网络通信时,需要把一个对象转为一串数据,并可以再反转回一个对象,这就是序列化的需求。Java序列化有几种方式,例如对象的类继承Serializable接口;或者对象的类继承Externalizable接口,实现接口的两个方法;或者转换为其他的通用数据交换格式,例如Json。

(1)Serializable方法实现序列化

采用此种Java序列化方式较为简单,只要使需要序列化的对象类继承此接口,并且保证对象内的字段也是可序列化的,如果存在不可序列化或者无需序列化的字段,可以用transient关键字在字段前标注。代码如下:

运行结果如下:

address name=beijing longitude=116.23 latitude=39.54 person=null

在此例中,Address类继承了Serializable接口,并且对person字段标注了transient,表示无需序列化。创建Address类实例后,用write方法把序列化结果存入一个文件,然后用read方法从文件中读取数据并且反序列化回一个Address实例。

(2)Externalizable方法实现序列化(www.xing528.com)

此接口包含两个方法,分别是readExternal和writeExternal,可以通过这两个方法完成序列化的定制。重写Adddress类,继承自Externalizable接口。代码如下:

通过重写此Address,最后达成的效果和上一个例子是相同的,但是此种写法给了编写者更大的灵活度,可以在两个方法中修改字段数据或者做其他的事情。在实际业务中具体采用哪种方法还需要根据实际需求来定。

(3)Json

Json是一种轻量级的数据交换格式,可以把对象序列化为Json格式,序列化后会生成一个Json格式的字符串。上例中的数据序列化后变为:

这种格式非常简单易懂,而且方便研发人员直接阅读序列化后的数据,具体如何转换为Json格式会在后续章节讲解。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈