序列化
基本概念
非持久化:
对于存在 JVM(Java 虚拟机)的对象,其内部的状态只能保持在内存中,一旦 JVM 停止工作,内部的状态也就消失了,所以它是非持久化的
持久化: 通常的作法是将其保存到文件或数据库
序列化: 对象序列化,可以将 JVM 中的活动对象转换成字节流, 以便存储在文件中或在网络上传输
反序列化: 将文件或数据库中的字节数组(流)转换成 JVM的活动对象, 就是打开字节流并重构对象
Serializable
实现该接口
序列化失败
transient static 不想
Thread 不能
Externalizable 自定义序列化
序列化 transient static修饰的属性
serialVersionUID
定值: 1L
Jvm: 序列化后 , 属性改变, 会报错InvalidClassException
序列化应用场景
一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。
二:对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。
祝:
大家生活愉快,工作顺利