Java基础:transient关键字的作用


目录
  • 1 作用
  • 2 注意事项
  • 3 应用场景

1 作用

一旦类的某个成员变量被transient修饰,该变量将不再是对象持久化的一部分,即无法被序列化和反序列化。

2 注意事项

  1. transient关键字只能修饰类的成员变量,而不能修饰本地(即局部)变量,也不能修饰方法和类。

  2. 并且transient生效的一个隐含前置条件是 对象可序列化,那么,类需要实现 Serializable 接口。

  3. static修饰的变量,不管是否被 transient 修饰,都不可被序列化(如果反序列化后,类中的static变量有值,则该值为当前JVM中对应的static变量的值)。原因:序列化保存的是对象的状态,静态变量保存的是类状态,所以序列化并不能保存静态变量。

3 应用场景

一些安全相关的敏感信息,比如密码,一般情况下是不能离开JVM的,不能被序列化。