读了<<Think in Java>>后,对Java的对象序列化有了一些了解,因此简单的总结一下,也许以后用的着。
- 需要序列化的类需要实现Serializable接口或者Externalizable接口;
- 实现Serializable接口时,默认所有的属性都要被保存,若不想保存某些属性,有两种办法:一是在不想保存的属性前面加上transient关键字;二是在该类中实现下面两个方法,在该方法中自行选择需要保存哪些属性;
- 实现Externalizable接口时,默认所有的属性都不被保存,而是需要该类在实现Externalizable接口时,自行决定需要保存哪些属性(writeExternal和readExternal方法);
- 类的静态变量在序列化时是不保存的,如需要保存,则只能手动保存(即显示的将静态变量的值写入对象输出流);
- 更加详细的说明在<<Think in java 4th>>的I/O一章,703页