序列化:Serializable和Externalizable
来源:互联网 发布:软件研发阶段 编辑:程序博客网 时间:2024/04/29 21:19
Externalizable是深度定制序列化。如果同时实现了这两个接口,则只会执行Externalizable。
Serializable可以仅仅标记可序列化,使用JDK默认的序列化方法,也可以定制。实现方法:
private void writeObject(ObjectOutputStream oos) {// oos.defaultWriteObject(); // Write/save additional fields oos.writeUTF(value); } private void readObject(ObjectInputStream ois) {// ois.defaultReadObject(); // Read/initialize additional fields value = ois.readUTF() }
Externalizable必须实现方法:
void writeExternal(ObjectOutput out) { out.writeUTF(value) } void readExternal(ObjectInput input) { value = input.readUTF() }
如果实现是深度定制序列化,但是用Serializable的writeObject方法实现,它不一定起作用。
注意几点:
1、静态static成员不被序列化
2、如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException
3、transient修饰的字段不被序列化
4、父类如果不可序列化,子类不会序列化父类的成员,除非在子类中显式序列化。父类可序列化,子类也需要调用super的序列化方法。
- 序列化:Serializable和Externalizable
- 序列化Serializable和Externalizable
- 序列化--Serializable接口和Externalizable接口
- Java序列化Serializable和Externalizable
- Java序列化Serializable和Externalizable
- java序列化之Serializable和Externalizable
- Java序列化Serializable和Externalizable
- 序列化:Serializable、Externalizable、Parcelable
- 序列化接口:Serializable/Externalizable
- java Serializable和Externalizable序列化反序列化详解
- java Serializable和Externalizable序列化反序列化详解
- java Serializable和Externalizable序列化反序列化详解
- Java之Serializable/Externalizable序列化和反序列化
- Serializable和Externalizable序列化反序列化
- 对象的序列化实现Serializable 接口和Externalizable接口
- 对象的序列化 Externalizable Serializable
- Java序列化的作用(Serializable/Externalizable)
- Serializable和Externalizable
- C++操作XML经验总结
- 设置SOCKET的发送与接收缓冲区 .
- 1.复合主键:Object,hbm
- 并查集 xtu-2170 ACM ICPC 2011–2012, Northeastern European Regional Contest Problem E. Eve
- HGE 系列教材(7) --- 使用 Helper Classes
- 序列化:Serializable和Externalizable
- WPF Cover Flow Tutorial : Part 4
- 2.复合主键:工具类
- 打开选择文件对话框
- 解决APK安装成功后点击"打开"再按Home键遇到的问题
- 关于编程珠玑第一章的体会
- 3.复合主键:hibernate.cfg.xml
- vmware+ubuntu-安装交叉编译器
- 4.复合主键:测试