作用及使用方法
一个对象实现了seriable就可以被序列化。transient作用于属性,用于对象在序列化的过程中,忽略对该变量的序列化。换个说法,该变量的生命周期只存在内存中,不能存在于磁盘中。
class User implements Serializable {
private static final long serialVersionUID = 8294180014912103005L;
private String username;
private transient String passwd;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
2. transient使用小结
- 只能作用于成员变量,序列化的时候会忽略该字段。
- 静态变量无论是否被transient修饰,都不能序列化。反序列化的时候会读取JVM中存放的静态变量的值。
- 被transient修饰的变量一定不能序列化吗?当实现externalizable的时候,这是一个自定义序列化的接口,可以定义序列化哪些字段。如果transient修饰的属性,又被定义了要序列化,以自定义序列化规则为准。