泉州建设网站,佛山外贸网站设计公司,沈阳网站建设与开发,云南seo整站优化报价今天看ArrayList的源代码#xff0c;发现了里面的一个关键字transient
然后查了一下#xff0c;发现这个关键字是用来防止序列化的
那什么是序列化呢#xff1f;我又懵逼了
为什么需要序列化#xff1f;
在当今的网络社会#xff0c;我们需要在网络上传输各种类型的数…今天看ArrayList的源代码发现了里面的一个关键字transient
然后查了一下发现这个关键字是用来防止序列化的
那什么是序列化呢我又懵逼了
为什么需要序列化
在当今的网络社会我们需要在网络上传输各种类型的数据包括文本、图片、音频、视频等 而这些数据都是以二进制序列的形式在网络上传送的那么发送方就需要将这些数据序列化为字节流后传输而接收方接到字节流后需要反序列化为相应的数据类型。当然接收方也可以将接收到的字节流存储到磁盘中等到以后想恢复的时候再恢复。
综上可以得出对象的序列化和反序列化主要有两种用途
把对象的字节序列永久地保存到磁盘上。持久化对象 可以将Java对象以字节序列的方式在网络中传输。网络传输对象
通过Serializable或Externalizable来使数据序列化 serialVersionUID
由于反序列化Java对象的时候必须提供该对象的class文件但是随着项目的升级class文件文件也会升级Java如何保证兼容性呢答案就是 serialVersionUID。每个可以序列化的类里面都会存在一个serialVersionUID只要这个值前后一致即使类升级了系统仍然会认为他们是同一版本。如果我们不显式指定一个系统就会使用默认值。 tips1. 父类可以被序列化子类就可以被序列化
2.子类被序列化父类就不可以