Serializable java序列化

原创 2004年08月22日 18:25:00
1、实现Serializable回导致发布的API难以更改,并且使得package-private和private
这两个本来封装的较好的咚咚也不能得到保障了
2、Serializable会为每个类生成一个序列号,生成依据是类名、类实现的接口名、
public和protected方法,所以只要你一不小心改了一个已经publish的API,并且没有自
己定义一个long类型的叫做serialVersionUID的field,哪怕只是添加一个getXX,就会
让你读原来的序列化到文件中的东西读不出来(不知道为什么要把方法名算进去?)
3、不用构造函数用Serializable就可以构造对象,看起来不大合理,这被称为
extralinguistic mechanism,所以当实现Serializable时应该注意维持构造函数中所维
持的那些不变状态
4、增加了发布新版本的类时的测试负担
5、1.4版本后,JavaBeans的持久化采用基于XML的机制,不再需要Serializable
6、设计用来被继承的类时,尽量不实现Serializable,用来被继承的interface也不要
继承Serializable。但是如果父类不实现Serializable接口,子类很难实现它,特别是
对于父类没有可以访问的不含参数的构造函数的时候。所以,一旦你决定不实现
Serializable接口并且类被用来继承的时候记得提供一个无参数的构造函数
7、内部类还是不要实现Serializable好了,除非是static的,(偶也觉得内部类不适合
用来干这类活的)
8、使用一个自定义的序列化方法
看看下面这个保存一个双向链表的例子:




这样会导致链表的每个元素以及元素之间的关系(双向链表之间的连接)
都保存下来,更好的方法是提供一个自定义的序列化如下: 9、不管你选择什么序列化形式,声明一个显式的UID: private static final long serialVersionUID = randomLongValue; 10、不需要序列化的东西使用transient注掉它吧,别什么都留着 11、writeObject/readObject重载以完成更好的序列化 readResolve 与 writeReplace重载以完成更好的维护invariant controllers

关于序列化对象.Serializable Object总结.

一个对象需要可实现序列化需要满足以下条件. 1.实现Serializable接口 2.父类必须实现可序列化或者存在默认无参构造函数. 3.类的域变量必须实现可序列化或者定义为transient类...
  • rickylin86
  • rickylin86
  • 2015年12月19日 18:56
  • 2037

对Java Serializable(序列化)的理解和总结

我对Java Serializable(序列化)的理解和总结 博客分类:  Java技术 JavaOSSocketCC++  1、序列化是干什么的?        简单说就是...
  • dreamtdp
  • dreamtdp
  • 2013年11月11日 20:00
  • 45704

深入理解Java中的序列化(Serializable)

深入理解Java中的序列化(Serializable)
  • leixingbang1989
  • leixingbang1989
  • 2016年01月21日 18:34
  • 3477

Java_Serializable(序列化)的理解和总结

  • 2012年03月13日 16:20
  • 29KB
  • 下载

java对象序列化Demo------------Serializable

  • 2013年07月25日 16:48
  • 1KB
  • 下载

Java Serializable(序列化)的理解和总结、具体实现过程(转)

原文地址:http://www.apkbus.com/android-13576-1-1.html Java Serializable(序列化)的理解和总结、具体实现过程       ...
  • yhyqf
  • yhyqf
  • 2015年08月11日 10:17
  • 1638

理解Java对象序列化——Serializable接口

概述:当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列,可以。 ...
  • fancylovejava
  • fancylovejava
  • 2013年06月15日 22:10
  • 12917

Java Serializable(序列化)的理解

1、序列化是干什么的?        简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object ...
  • a564663276
  • a564663276
  • 2013年05月23日 10:52
  • 1874

对Java Serializable(序列化)的理解和总结

1、序列化是干什么的?        简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object ...
  • xiaofei0859
  • xiaofei0859
  • 2017年12月07日 17:32
  • 65

Java Serializable(序列化)的理解和总结

Java Serializable(序列化) 类通过实现java.io.Serializable接口可以启用其序列化功能。未实现次接口的类无法使其任何状态序列化或反序列化。可序列化类的所...
  • pinyngVK
  • pinyngVK
  • 2016年07月04日 14:53
  • 78
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Serializable java序列化
举报原因:
原因补充:

(最多只允许输入30个字)