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

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

深入理解Java中的序列化(Serializable)
  • leixingbang1989
  • leixingbang1989
  • 2016-01-21 18:34:55
  • 5547

json序列化,反序列化;以及java.io.Serializable序列化;即json中说的序列化,和java.io.Serializable序列化,两者的区别

json序列化,反序列化;以及java.io.Serializable序列化;即json中说的序列化,和java.io.Serializable序列化,两者的区别。 java.io....
  • Ideality_hunter
  • Ideality_hunter
  • 2017-05-25 13:55:40
  • 1547

java序列化Protostuff和Serializable的区别

序列化就是将Java Object转成byte[];反序列化就是将byte[]转成Java Object。 Java自带序列化机制java.io.Serializable       ...
  • lvliyu
  • lvliyu
  • 2017-01-12 11:19:00
  • 857

Java 序列化Serializable详解(附详细例子)

Java 序列化Serializable详解(附详细例子)  1、什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserializatio...
  • u010093630
  • u010093630
  • 2014-05-30 01:10:57
  • 9982

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

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

Java对象序列化原理以及Serializable接口

Java对象的序列化就是把一个对象变成二进制的数据流的一中方法,通过对象的序列化可以方便的实现对象的传输和存储。 原理是:对象------------->转换----------------->将对象...
  • fengshizty
  • fengshizty
  • 2014-11-20 16:16:19
  • 2734

Java序列化(Serializable)与反序列化

感谢有奉献精神的人 转自:http://www.importnew.com/19036.html?ref=myread 序列化是干什么的 简单说就是为了保存在内存...
  • zhangliao613
  • zhangliao613
  • 2016-04-07 15:48:01
  • 823

Java Serializable序列化,反序列化 ,serialVersionUID的作用

Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。如此可以把对象转换成字节流,可以进行网络传输,保持到本地文件,数据库等,增加对象的生命周...
  • chenchaofuck1
  • chenchaofuck1
  • 2016-03-07 16:31:28
  • 1912

JavaBean 实现 implements Serializable 序列化

这里定义了一个Java Bean【bonusBean】,它继承了父类 Models,同时也实现了 Serializable 接口。 implements Serializable 的目的是在网络传输过...
  • paul50060049
  • paul50060049
  • 2016-06-26 00:42:47
  • 2905

谈谈序列化—实体bean一定要实现Serializable接口?

导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型。但是由于map每次都要匹配key值,很麻烦。所以在之后就将参数传递和返回类型全都改成了实体bean...
  • u013034889
  • u013034889
  • 2017-03-13 17:38:27
  • 9411
收藏助手
不良信息举报
您举报文章:Serializable java序列化
举报原因:
原因补充:

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