java关键字:transient

本文介绍了Java中transient关键字的作用及应用场景,特别是在序列化过程中的控制方式。transient可用于排除特定字段不参与序列化,这对于控制对象的状态持久化非常有用。此外,文章还探讨了其在不同序列化接口实现中的表现差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

transient是控制序列化字段的关键字。
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。但有时,某个Serilizable类中某些字段我们不愿意序列化,就可以加上transient关键字,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。


  • tip1:
    transient也会对JSON的序列化和反序列化造成影响。
    将变量标志为transient,FastJSON将不会对其进行序列化,使接收端得不到某字段。
  • tip2:
    类的静态变量,不标注transient关键字也不会参与序列化,会作为类定义一部分被使用。
  • tip3:
    如果类不是继承Serilizable,而是实现了Externalizable接口来实现序列化,transient关键字将不起作用。在Externalizable的实现类中,没有任何东西可以自动序列化,需要在writeExternal方法中进行手工指定所要序列化的变量,这与是否被transient修饰无关。

参考链接:Java transient关键字使用小记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值