码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA基础-Serializable序列化学习总结

时间:2018-02-12 13:39:15      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:解决   反序   lis   replace   特殊   zab   自定义   需要   extern   

一、JAVA基础-Serializable序列化解决啥问题

1、JAVA对象要通过IO流实现数据持久化,或者读写到硬盘必须要序列化,如果不序列化会抛出 java.io.NotSerializableException,JAVA实现序列化的方式有两种,实现 Serializable(不需要任何代码) 接口或者 Externalizable (需要写2个空方法)。

 

二、JAVA序列化可能遇到哪些问题

1、A对象引用B对象 ,如果要序列号A对象 必须要序列化B对象,依次类推。

2、实现序列化无效要创建无参数的构造方法。

3、序列化一个对象B后,A对象引用了B,序列化A对象,或者B对象属性修改后再次序列化B对象,B对象被反序列化后,熟悉没变,JAVA序列化机制所有的对象只序列化一次,无论他后面被序列化多少次,所有反序列化拿到的都是第一次序列化的B对象。

4、对于特殊字符需要安全保密的,可以在序列化的时候,加入自定义序列化,自定义序列化的方式有几种,1.可以使用transient 关键字,这样反序列化就那不多对应的值,也就是这个字段不会被序列化,也可以从写 writeObject  readObject 方法 (这两个方法可以使用加密算法和解密算法来对重要的数据进行加密,让人在反序列化之后不能获取到重要保密信息)  也可以复写writeReplace,此方法返回的是一个List。

三、序列化使用注意事项

1、对象和属性可以序列化,方法、static属性、transient 属性不会被序列化。

JAVA基础-Serializable序列化学习总结

标签:解决   反序   lis   replace   特殊   zab   自定义   需要   extern   

原文地址:https://www.cnblogs.com/daiveking/p/java_serializable.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!