Java 序列化,在这里,我们将讨论如何序列化和反序列化对象以及它的用途。
什么是 Java 序列化
序列化是一种将对象转换为字节流的机制,以便可以将其写入文件,通过网络传输或存储到数据库中。反序列化反之亦然。简单来说,序列化是将对象转换为字节流,反序列化是从字节流重建对象。 Java 序列化 API 执行序列化和反序列化。类必须实现java.io.Serializable
接口才有资格进行序列化。
让我们举个例子来更好地理解这些概念:
示例
此类实现Serializable
接口,这意味着它可以被序列化。除了那些声明为transient
的字段外,该类的所有字段都可以在转换为字节流后写入文件。在下面的示例中,我们有两个瞬态字段,这些字段不参与序列化。
Student.java
对象的序列化
该类正在将Student
类的对象写入Student.ser
文件。我们使用FileOutputStream
和ObjectOutputStream
将对象写入File
。
注意:根据 Java 序列化的最佳实践,文件名应具有.ser
扩展名。
输出:
对象的反序列化
从读取文件中的字节流后,该类将重建Student
类的对象。观察此课程的输出,学生地址和学生身高字段为null
和 0。这是因为这些字段在Student
类中被声明为transient
。
输出: