如何在 Java 中序列化和反序列化对象?
javaobject oriented programmingprogramming更新于 2025/6/30 9:48:17
序列化是将对象的状态更改为字节流的过程,如果对象的类或父类实现了 Serializable 或 Externalizable接口,则该对象被称为可序列化,而反序列化是将序列化对象转换回对象副本的过程。
在序列化期间,如果我们不想使用 transient关键字将特定变量的状态写入字节流中。当 JVM 遇到 temporary 关键字时,它会忽略变量的原始状态并存储该数据类型的默认值,即 0 表示 int,0 表示 byte,0.0 表示 float 等。对象的 序列化 可以通过 FileOutputStream 和 ObjectOutputStream 类完成。
示例
import java.io.*;
public class SerializationTest implements Serializable {
int a = 1, b = 2;
transient int c = 3;
public static void main(String[] args) throws Exception {
SerializationTest obj = new SerializationTest();
// serialization FileOutputStream fos = new FileOutputStream("serialization.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
// de-serialization FileInputStream fis = new FileInputStream("serialization.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
SerializationTest test = (SerializationTest)ois.readObject();
System.out.println("a = " + test.a);
System.out.println("b = " + test.b);
System.out.println("c = " + test.c);
}
}
输出
a = 1 b = 2 c = 0
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

