【Java】序列化流/反序列化流的细节汇总

1、使用序列化流将对象写到文件时,需要让JavaBean类实现Serializable接口。否则会出现 NotSerializableException 异常,表示这个类对象不可被序列化。

2、序列化流写到文件中的数据是不能修改的,一旦修改就无法再次读回来了。

3、序列化对象后,修改了JavaBean类,再次反序列化,会不会有问题?

会出现问题,会抛出 InvalidClassException异常

解决方案:手动给JavaBean类添加 serialVersionUID,这个变量你可以把它理解成序列化、版本号。

在添加的时候不建议字节写,也不建议抄别人的,建议在IDEA中设置一下,以后自动生成就行了。

4、如果一个对象中的某个成员变量的值不想被序列化,又如何实现呢?

解决方案:给该成员变量加 transient 关键字修饰,也叫做 瞬态关键字,它的作用是:该关键字标记的成员变量不参与序列化的过程。

也就是说这个变量所记录的值不会保存到本地文件中,下次使用 反序列化流 读取出来的时候,这个变量为默认初始化值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值