Transient 与 序列化

序列化

        1:对象序列化:将对象转换为字节序列的形式表示,这些字节包含对象包含的数据和信息,便于传输和存储。
        2:可序列化和反序列化需要该实体类实现Serializable接口。

transient关键字

        意义:让被修饰的成员属性变量不被序列化。具体就是Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。
1:该成员变量可以被其他字段推出。
2:特殊字段不想被序列化:

        例如在java ArrayList源码中,实现了java.io.Serializable接口,其中
transient Object[] elementData;
        elementData是一个缓存数组,初始容量为10,假如现在实际有了5个元素,那么在序列化时只需要储存5个元素,数组中的最后五个元素是没有实际意义的,不需要储存。所以设计者将elementData设计为transient,然后在在writeObject方法中手动将其序列化,并且只序列化了实际存储的那些元素,而不是整个数组。
        作用:主要是为了节省空间吧。

参考

https://www.cnblogs.com/chenpi/p/6185773.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值