一、背景
Java 序列化机制中的排除标记,用于控制对象的持久化范围,确保敏感数据或临时数据不被保存或传输。
二、作用
序列化过程中,用 transient 标记的字段会被排除在序列化过程之外,反序列化时该字段的值会被设为默认值(对象为 null, int 类型字段为 0)。
三、使用场景
敏感数据保护:密码、密钥不应被传输
public class User implements Serializable { private String username; private transient String password; // 序列化时忽略此字段 }
避免保存临时状态:例如缓存数据或中间计算结果
public class DataProcessor implements Serializable { private int rawData; private transient int cachedResult; // 无需保存临时结果 }
四、字段添加了 transient 和不加的对比
没有加 transient
添加了 transient