transient 关键字小结

作用及使用方法

一个对象实现了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使用小结

  1. 只能作用于成员变量,序列化的时候会忽略该字段。
  2. 静态变量无论是否被transient修饰,都不能序列化。反序列化的时候会读取JVM中存放的静态变量的值。
  3. 被transient修饰的变量一定不能序列化吗?当实现externalizable的时候,这是一个自定义序列化的接口,可以定义序列化哪些字段。如果transient修饰的属性,又被定义了要序列化,以自定义序列化规则为准。

参考

  1. Java transient关键字使用小记
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值