前言

Serializable接口‌是Java中用于启用对象序列化功能的接口。简单记录于此,方便自己查阅。

正文

‌Serializable接口是一个空接口,没有任何方法‌,其主要作用是作为一个标记,告诉Java虚拟机该类的对象是可以被序列化的‌。

序列化和反序列化

序列化是将对象状态保存为字节流的过程,序列化通常涉及创建一个ObjectOutputStream,并通过该输出流写入对象。

反序列化则是将字节流恢复为对象状态的过程,反序列化则通过ObjectInputStream读取字节流并恢复对象。

序列化步骤
  1. 创建OutputStream对象,例如FileOutputStream
  2. OutputStream封装到ObjectOutputStream对象中。
  3. 使用writeObject()方法将对象写入输出流。
  4. 关闭资源,包括ObjectOutputStream和底层的OutputStream
反序列化步骤
  1. 创建InputStream对象,例如FileInputStream
  2. InputStream封装到ObjectInputStream对象中。
  3. 使用readObject()方法从输入流中读取并恢复对象。
  4. 关闭资源,包括ObjectInputStream和底层的InputStream
作用
  1. 可跨平台 : 序列化允许Java对象在不同的平台和Java虚拟机之间传输,只要序列化和反序列化的过程遵循相同的协议

  2. 兼容性强 : Java的序列化机制保证了对象的兼容性,即使类的实现发生变化,只要类的序列化版本号(serialVersionUID)保持不变,旧的序列化对象仍然可以在新的类实现上进行反序列化‌

缺点
  1. 性能 :一般,主要涉及大量IO操作,存在影响程序性能。

  2. 安全性 :序列化可能会带来安全风险,因为恶意的序列化数据可以被用来执行攻击。

demo

下面是自己写的demo,用于简单的使用。

比较粗糙哈,部分代码

隐藏内容!
付费阅读后才能查看!
1
2
多个隐藏块只需支付一次

参考文章

相关文章

暂无评论

none
暂无评论...