Java 序列化(Serialization)
-
什么是序列化
在这里,我们将讨论如何序列化和反序列化一个对象以及它的用途。那么什么是Java序列化?序列化是一种将对象转换为字节流的机制,以便可以将其写入文件,通过网络传输或存储到数据库中。反序列化反之亦然。简而言之,序列化将对象转换为字节流,反序列化是从字节流重建对象。Java序列化API提供了执行序列化和反序列化的功能。一个类必须实现java.io.Serializable接口才能进行序列化。 -
对象序列化
让我们举个例子来更好地理解这些概念:此类实现Serializable接口,这意味着可以对其进行序列化。此类中的所有字段都可以在转换为字节流之后写入文件中,除非那些字段声明为transient。在下面的示例中,我们有两个临时字段,这些字段将不参与序列化。对象的序列化将类Student类的对象写入Student.ser文件。我们正在使用FileOutputStream和ObjectOutputStream将对象写入文件。注意:根据Java序列化的最佳做法,文件名应具有.ser扩展名。上面例子输出:Serialzation Done!!
-
对象反序列化
对象反序列化从文件读取字节流后,此类将重建Student类的对象。 观察该类的输出,stuAddress和stuHeight字段连续具有null和0值。 这是因为这些字段在Student类中被声明为transient。以上示例输出: