java序列化与反序列化

序列化和反序列化?序列化ID表示什么意思?
Java的对象序列化就是将实现了Serializable接口的对象转换成一个字节序列,并在以后将这个字节序列完全恢复为原来的对象,这一过程可通过网络进行,意味着序列化机制能自动弥补不同操作系统之间的差异。对象序列化可以实现轻量级持久性。
“持久性”意味着对象的生存周期不取决于程序是否正在执行;它可生存与程序的调用之间。通过将一个序列化对象写入磁盘,然后再重新调用程序时恢复该对象实现持久性。
反序列化就是根据这些保存的信息重建对象的过程。(将字节序列转化为java对象的过程)

序列化过程:
1)创建OutputStream对象,然后将其封装在ObjectOutputStream对象内,如:
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(“目标地址路径”));
2)调用writeObject()序列化对象:
out.writeObject(“Hellohi”);

反序列化过程:
1)将InputStream封装在ObjectInputStream内,如:
ObjectInputStream in = new ObjectInputStream(new fileInputStream(“目标地址路径”));
2)调用readObject()
String obj1 = (String)in.readObject();

序列化ID:
在java序列化中,ID起着关键的作用,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常,序列化失败。

参考书籍《Java编程思想》第十八章

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值