Java 序列化:Serializable 接口详解
'Serializable' 是 Java 中的一个接口,用于标识一个类的实例可以被序列化和反序列化。
当一个类实现了 'Serializable' 接口时,它的对象可以通过将其转换为字节流的形式进行序列化,然后将字节流持久化保存在磁盘或通过网络传输。反之,可以通过将字节流反序列化为对象来重新创建原始对象的副本。
要实现 'Serializable' 接口,只需在类的声明上添加 'implements Serializable'。该接口没有定义任何方法,仅仅是一个标记接口。
以下是一个示例实现了 'Serializable' 接口的类:
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 省略其他代码和 getter/setter 方法
}
通过实现 'Serializable' 接口,我们可以将 'Person' 对象序列化为字节流,以便在分布式系统中进行传输或持久化存储。这也意味着该类的对象可以在网络之间进行传输,或在不同的 JVM 中进行共享。
需要注意的是,实现 'Serializable' 接口的类的对象会被完全序列化,包括其所有非 'transient' 的成员变量。如果某个成员变量不希望被序列化,可以使用 'transient' 关键字进行修饰。同时,需要确保被序列化的类及其成员变量都是可序列化的,否则在序列化过程中会抛出 'java.io.NotSerializableException' 异常。
原文地址: https://www.cveoy.top/t/topic/cljx 著作权归作者所有。请勿转载和采集!