Java 序列化应用背景及说明

序列化是什么

  • 处理对象流的机制,将数据分解成字节流,以便存储在 文件传输 或 网络上传输
    • 序列化

序列化特点

  • 父类能被序列化,那么子类也能被序列化
  • 子类被序列化,父类没被序列化,那么子类中的父类属性会丢失
  • 声明为 static 或 transient 的变量不能被序列化
    • transient 表示临时变量
  • 允许不可序列化类的子类序列化,需要假定子类下负责保存、还原父类的 public/protected 和可访问 package 字段的状态
    • 仅在子类扩展的类有一个可访问的无参构造方法来初始化该类的状态
    • 非该情况,则声明一个类为可序列化类会报运行时错误
  • 反序列化时,不可序列化的字段从该类的 public/protected 无参构造方法中获取
    • 可序列化的子类必须能够访问无参数的构造方法,从该数据流中还原

序列化场景

  • 实现分布式对象,实现对象在远程主机上服务
  • 实现“深复制”一个对象,它可以保留对象的数据,而且递归保存对象引用的每个对象的数据
    • 复制对象及引用

序列化接口

  • 没有方法或字段,仅可用于标识可序列化的语义
  • 序列化和反序列化时对于需要特殊处理的类,要用下列准确签名
private void writeObject(java.io.ObjectOutputStream out)
  throws IOException
private void readObject(java.io.ObjectInputStream in)
  throws IOException, ClassNotFoundException;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值