19、Java 序列化:扩展、定制与持久化策略

Java 序列化:扩展、定制与持久化策略

1. 扩展和定制序列化

在大多数情况下,Java 序列化 API 开箱即用的功能已经足够强大,但在某些场景下,开发者需要对序列化过程进行更精细的控制。例如,有时我们不希望类的每个字段都被序列化到磁盘;有时我们想在序列化流中添加类字段之外的额外信息,或者在序列化之前修改类的某些成员。当类的定义发生修改(如字段重命名、添加或删除字段)时,之前序列化的类在反序列化时会出错,这就需要对序列化进行定制。下面介绍几种常用的定制和扩展 Java 序列化的机制。

1.1 transient 关键字

在 Java 中, transient 关键字用于 Java 序列化。任何被标记为 transient 的字段都不会被保存到磁盘。这在类包含一个未实现 Serializable 接口的对象引用,但又想将类实例持久化到磁盘时非常有用。另外,某些依赖于运行时的字段也不应该被持久化。

例如,在 Configuration 对象中,我们可能想额外存储一个对应用程序的引用(可能用于回调)。当将应用程序保存到磁盘时,肯定不希望持久化应用程序及其对象图中的所有关联对象(即使这些对象都实现了 Serializable 接口)。要将一个字段标记为 transient ,只需在对象或基本类型的定义前加上该关键字:

private transient Application application;
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值