序列化对象

  • 一、对象序列化
  • (1)对象序列化简述
  • (2) ObjectOutputStream序列化所用构造器
  • (3)ObjectOutputStream序列化方法
  • (4)Serializable接口——启用其序列化功能的接口
  • (5)具体使用
  • (6)总结
  • 二、对象反序列化
  • (1)对象反序列化简述
  • (2)ObjectInputStream序列化所用构造器
  • (3)ObjectInputStream序列化方法
  • (4)transient
  • (5)具体使用
  • (6)总结


一、对象序列化

(1)对象序列化简述

●作用:以内存为基准,把内存中的对象存储到磁盘文件中去,称为对象序列化。

●使用到的流是对象字节输出流:ObjectOutputStream

Java protobuf序列化 对象嵌套 java对象序列化工具_jvm


Java protobuf序列化 对象嵌套 java对象序列化工具_jvm_02

(2) ObjectOutputStream序列化所用构造器

构造器

说明

public ObjectOutputStream(OutputStream out)

把低级字节输出流包装成高级的对象字节输出流

(3)ObjectOutputStream序列化方法

方法名称

说明

public final void writeObject(Object obj)

把对象写出去到对象序列化流的文件中去

(4)Serializable接口——启用其序列化功能的接口

●Serializable接口是启用其序列化功能的接口。
●实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任意状态被序列化或逆序列化。

(5)具体使用

Java protobuf序列化 对象嵌套 java对象序列化工具_对象序列化_03


Java protobuf序列化 对象嵌套 java对象序列化工具_序列化_04


Java protobuf序列化 对象嵌套 java对象序列化工具_jvm_05


Java protobuf序列化 对象嵌套 java对象序列化工具_序列化_06


运行结果:

�� sr Summerday26.Student��ԅ��w� I ageL loginNamet Ljava/lang/String;L nameq ~ L passWordq ~ xp Ut 钮钴禄氏t 甄嬛t 666666

(6)总结

①对象序列化的含义是什么?
●把对象数据存入到文件中去。

②对象序列化用到了哪个流?
●对象字节输出流ObjectOutputStram
●public void writeObject(Object obj)

③序列化对象的要求是怎么样的?
●对象必须实现序列化接口 java.io.Serializable

二、对象反序列化

(1)对象反序列化简述

●作用:以内存为基准,把存储到磁盘文件中去的对象数据恢复成内存中的对象,称为对象反序列化。
●使用到的流是对象字节输入流:ObjectInputStream

Java protobuf序列化 对象嵌套 java对象序列化工具_java_07


Java protobuf序列化 对象嵌套 java对象序列化工具_序列化_08

(2)ObjectInputStream序列化所用构造器

构造器

说明

public ObjectInputStream(InputStream out)

把低级字节输如流包装成高级的对象字节输入流

对象序列化所用构造器

(3)ObjectInputStream序列化方法

方法名称

说明

public Object readObject()

把存储到磁盘文件中去的对象数据恢复成内存中的对象返回

(4)transient

●transient修饰的变量不会被序列化

(5)具体使用

Java protobuf序列化 对象嵌套 java对象序列化工具_学习_09


Java protobuf序列化 对象嵌套 java对象序列化工具_序列化_10


Java protobuf序列化 对象嵌套 java对象序列化工具_jvm_11

(6)总结

①对象反序列化的含义是什么?
●把磁盘中的对象数据恢复到内存的Java对象中。

②对象反序列化用到了哪个流?
●对象字节输入流ObjectInputStram
●public Object readObject()