2018-10-07-serialVersionUID

implements Serializable

serialVersionUID 一个标签

运行时,判断类的serialVersionUID来验证版本的一致性

------>

JVM把传来的字节流中的serialVersionUID与本地实体类的serialVersionUID进行对比:

一样,就可以进行反序列化

不一样,出现异常InvalidCastException

生成方式:

1、默认:1L
private static final long  serialVersionUID = 1L; 
2、根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段
private static final   long  serialVersionUID = xxxxL;


为什么要用序列化https://blog.csdn.net/u011215133/article/details/51177843

1、对流化后的对象进行读写操作,

2、也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!

没有序列化:
对象的引用【B对象中引用了A对象,加载到heap中,创建了B,B.A,A,修改A的时候,还要修改它的引用】

通过序列化优化
1、保存到磁盘的所有对象都获得了一个序列号(1、2、3等等)
2、当要保存一个对象时,要先检查该对象是否被保存
3、如果以前保存过,只需要写入"与已经保存的具有序列号x的对象相同"的标记

对于transient字段序列化机制会跳过不会将其写入文件

对又想序列化又不可以被序列化的数据字段进行写出和读入操作
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;
private void writeObject(ObjectOutputStream out) throws IOException;
(注:这些方法定义时必须是私有的,因为不需要你显示调用,序列化机制会自动调用的)

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 废话不多说,自己进入今天的主题 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:...
    传奇内服号阅读 2,601评论 1赞 31
  • JAVA序列化机制的深入研究 对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整...
    时待吾阅读 11,353评论 0赞 24
  • 点燃半根发霉的烟 阳光已经卷缩到天边 一间屋里没有阳光 蜘蛛网已经破烂不堪 花朵枯萎的不能行 墙上的人物画像个疯子...
    上单满路抓阅读 484评论 2赞 3
  • 不要过于埋怨和悲伤,这样它会使你的人生与你最初衷的理想断篇。 心存善良、感恩相信老天会看的到。 虽然这个年头儿老实...
    李修竹阅读 316评论 0赞 0
  • 01 参加朋友的婚礼,刚到场,就传来一声清脆悦耳的声音,我转过头,看见对面一位优雅美丽、满脸笑容的女士向我走来,走...
    精致菇凉阅读 662评论 2赞 2

友情链接更多精彩内容