Java中的序列化tips

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java中的序列化tips脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_304_1@序列化Serializable

作用

1.当2个进程在进行远程通信时,相互发送数据,数据都是以二进制的形式传送的。如果我们要传输对象的话,就需要把对象转化为字节数组二进制数据),接收方接收后反序列成对象。目的在于,传送对象的状态,也就是属性值

2.反序列化后的对象还可以保存到硬盘上。

实现方式

1.实现Serializable接口。

2.实现Serializable接口,并增加void wrITeObject(ObjectOutputStream out) throws IOExceptionvoid readObject(ObjectInputStream in) throws IOException, @L_360_8@NotFoundException这2个方法来自定义某些属性的序列化。

3.实现Externalizable接口(该接口继承自Serializable接口),并重写writeExternamereadExternal方法来完全自定义要序列化的属性。

显式定义serialVersionUID属性的作用

1.对于一个要进行序列化的类,我们希望类的不同版本对序列化兼容(这个类可能前前后后对字段进行删改),如果不显式设置id,这个类的每个版本的id(由系统生成)都是不一样的。那么反序列化的时候,永远只能反序列化最新的实例了(旧的实例因为id不一致将失败)。

2.所以要保证兼容的话,就需要设置一个显式的id。那么在序列化旧的实例时,新添加的或更改的字段会被设置为null,删除的字段不设置。

3.如果我们不想兼容不同版本,我们还可以为不同的版本再设置一个版本号。在序列化和反序列化的过程中(自定义序列化),我们还可以根据版本号来选择性的序列化那些变化的属性的状态。

在sPRingmvc里,javabean都要实现Serializable接口,并生成显式id

其目的就是我们上面分析的序列化的作用以及显式id的作用,特别是在远程服务调用的项目中。

脚本宝典总结

以上是脚本宝典为你收集整理的Java中的序列化tips全部内容,希望文章能够帮你解决Java中的序列化tips所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。