transient 修饰
时间: 2023-09-26 10:13:32 浏览: 161
transient修饰符的使用
transient修饰符用于在Java中控制变量的序列化。根据引用的说明,被transient关键字修饰的变量不再能被序列化,这是因为transient关键字告诉Java虚拟机不要将该变量的值持久化保存。所以,当对象被序列化时,transient修饰的变量会被忽略掉,不会被写入到输出流中。
然而,引用指出,transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。如果变量是用户自定义的类变量,那么该类需要实现Serializable接口,以便能够正常进行序列化操作。
需要注意的是,引用说明了一个细节,即反序列化后类中的static型变量的值会被设为当前JVM中对应static变量的值,而不是序列化时的值。这可能导致在反序列化后,被transient修饰的静态变量的值发生改变。
综上所述,transient修饰符确实可以用于控制变量的序列化,被transient修饰的变量不会被序列化,而静态变量无论是否被transient修饰都不能被序列化。请注意transient关键字只能修饰变量,不能修饰方法和类,并且本地变量是不能被transient关键字修饰的。最后,反序列化后的静态变量的值会根据当前JVM中的值进行更新。
阅读全文