我们一般使用实现接口Serializable或者Externalizable来对一个类进行序列化,二者的区别在于前者是自动序列化的,而后者则需要手动进行序列化,即实现该接口的writeExternal 和 readExternal 方法。
transient关键字可用于修饰已实现了上述两个接口的类的成员变量,从而使该变量无法被序列化,对该关键字的使用总结如下:
- transient修饰的变量不能被序列化;
- transient只作用于实现 Serializable 接口,;对实现Externalizable接口的无效;
- transient只能用来修饰普通成员变量字段;
- 不管有没有 transient 修饰,静态变量都不能被序列化