【Java IO】Java的序列化机制,
分享于 点击 6051 次 点评:90
【Java IO】Java的序列化机制,
Java序列化机制采用的序列化算法:
1.所有保存到磁盘中的对象都有一个序列化编号
2.当程序试图序列化一个对象时,程序首先会检查该对象是否被序列化过,如果没有(在本次虚拟机中),系统才会将该对象转化为字节序列并输出。
3.如果某个对象已经被序列化过,程序直接输出一个序列化编号,不会对该对象序列化。
Hadoop没有采用Java 对象序列化机制的原因:
自定义序列化
1.属性前加 “transient”,忽略该属性的序列化 ——反序列化恢复对象时无法获得该属性值。
2.在序列化和反序列化中需要特殊处理的类提供如下方法:
private void writeObject(java.io.ObjectOutputStream out)
private void readObject(java.io.ObjectInputStream in)
3.实现Externalizable接口
void writeExternal(java.io.ObjectOutput out)——保存对象状态(基本类型和引用类型的属性值)
void readExternal(java.io.ObjectInput in)——反序列化(恢复基本类型和引用类型属性值)
Serializable和Externalizable序列化机制的对比
1.系统自动存储必要信息 vs 程序员决定存储哪些信息
2.java内建支持 vs 实现两个方法
3. 性能较差 vs 性能较高
“关于Java 对象序列化您不知道的 5 件事”
相关文章
- 暂无相关文章
用户点评