java-序列化

序列化需要考虑下面问题?

  1.serializable接口是可以继承的,即父类实现了该接口,子类也可以序列化

  •   2.子类实现序列化接口,父类不实现序列化,那么。子类可以序列化吗
    •         父类不可序列化,反序列化子类为object时,需要调用父类默认的无参构造器去初始化,去初始化属性的值(readObject需要调用父类的无参构造函数)
    •         结论:父类不可序列化的时候,需要调用默认的无参构造器做初始化属性的值
  •   3.类中存在引用对象,那么,这个类对象在什么情况下可以实现序列化
    •         如果引用对象没有实现序列化接口,则该类无法序列化(类的所有属性都是可序列化的该类才能序列化)
  •   4.同一个对象多次序列化(之间有属性更新),会影响序列化吗??
    •          所有保存到磁盘的对象都会有一个序列编码号,当程序试图去序列化一个对象的时候,会先检查这个对象是否已经被实例化过,只有当这个对象未被实例化过的时候,才会将这个对象序列化为字节对象输出,如果这个对象已经序列化过了,就会直接输出一个编码,Java序列化编码不会重复序列化同一个对象,只会记录已经序列化对象的一个编码,改变该对象的属性并不会将该对象转换为字节序列,只是保存了序列化的一个编号,再次反序列化对象时,输出的仍然是之前的属性值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值