Java基础:transient关键字的作用
1 作用
一旦类的某个成员变量被transient修饰,该变量将不再是对象持久化的一部分,即无法被序列化和反序列化。
2 注意事项
-
transient关键字只能修饰类的成员变量,而不能修饰本地(即局部)变量,也不能修饰方法和类。
-
并且transient生效的一个隐含前置条件是 对象可序列化,那么,类需要实现 Serializable 接口。
-
static修饰的变量,不管是否被 transient 修饰,都不可被序列化(如果反序列化后,类中的static变量有值,则该值为当前JVM中对应的static变量的值)。原因:序列化保存的是对象的状态,静态变量保存的是类状态,所以序列化并不能保存静态变量。
3 应用场景
一些安全相关的敏感信息,比如密码,一般情况下是不能离开JVM的,不能被序列化。