5

Java 序列化

 3 years ago
source link: https://suiyia.github.io/2019/12/10/Java-%E5%BA%8F%E5%88%97%E5%8C%96/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java 序列化

2019-12-10 Java 基础, 序列化 19 评论 字数统计: 437(字) 阅读时长: 1(分)
  • 什么是序列化与反序列化

    序列化:将对象转换为字节序列,保存着对象的类型信息、对象的数据,对象中的数据类型

    反序列化:将字节序列转换为对象

  • 为什么序列化

    将对象转换为字节序列后,对象可以保存在磁盘上、或者通过网络传输传到另外的程序中,序列化机制使得对象可以脱离程序的运行而独立存在。

  • 序列化使用场景

    实体类实现 Serializable 或者 Externalizable 接口,表明该类的实例可以序列化

    所有可在网络上传输的对象都必须是可序列化的,比如 RMI(remote method invoke, 即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错。

    所有需要保存到磁盘的 Java 对象都必须是可序列化的。

创建 ObjectOutputStream 输出流,调用 ObjectOutputStream.writeObject() 方法

被 transient 修饰的成员变量将不会被序列化,反序列化之后得到的属性都是默认值

序列化保存的是对象的状态,静态变量属于类的状态,因此序列化并不保存静态变量。

创建 ObjectInputStream 输入流,调用 ObjectInputStream.readObject() 方法

当 readObject() 找不到反序列化的类时,会抛出 ClassNotFoundException 。

深入分析Java的序列化与反序列化

java序列化,看这篇就够了

Java 序列化的高级认识


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK