Java 序列化

最近看了一篇关于java序列化的文章留下关健点笔记。大自然的搬运工

1、序列化 ID 问题

虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致(就是 private static final long serialVersionUID = 1L)。虽然两个类的功能代码完全一致,但是序列化 ID 不同,他们无法相互序列化和反序列化。

2、静态变量序列化

序列化时,并不保存静态变量,序列化保存的是对象的状态,静态变量属于类的状态,因此序列化并不保存静态变量

3、父类的序列化与 Transient 关键字

Transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,在被反序列化后,transient 变量的值被设为初始值,如 int 型的是 0,对象型的是 null。

4、序列化存储规则

Java 序列化机制为了节省磁盘空间,具有特定的存储规则,当写入文件的为同一对象时,并不会再将对象的内容进行存储,而只是再次存储一份引用,反序列化时,恢复引用关系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化...
    jiangmo阅读 506评论 0 2
  • 序列化是什么 信息的传递、交换支撑整个互联网产业,那么信息的交流的过程中遵循着什么样的标准。常见的网络传输协议有 ...
    非典型程序员阅读 2,317评论 0 5
  • 1.序列化 ID 问题情境:两个客户端 A 和 B 试图通过网络传递对象数据,A 端将对象 C 序列化为二进制数据...
    SDY_0656阅读 148评论 0 0
  • 当你爱上一个人的时候,你就赋予他伤害你的权利。不是你不够好,他就是不喜欢你,你追随他的脚步,走着他走过的路,在他的...
    南院花开阅读 159评论 0 1
  • 在中国互联网创始人中,王兴素来是较为独特的存在。不同于其他科技大佬喜欢频繁亮相于各大媒体发表高谈阔论,王兴甚至低调...
    海盗洁哥阅读 631评论 0 1