java序列化

HanGR 于 2024-09-10 发布


序列化与反序列化

  1. 序列化

    • 把对象转换成字节序列, 方便存储或传输.
  2. 反序列化

    • 把字节序列恢复成对象.


序列化的作用

  1. 持久化: 把对象保存到磁盘、数据库、网络中, 方便后续使用.

  2. 网络传输: 把对象发送到另一台计算机, 进行远程调用.

  3. 多线程: 在多线程环境下, 可以把对象在内存中进行传输, 避免数据同步问题.


java序列化库

  1. gson(google 出品, 功能强大, 性能高, 但不支持 java 原生序列化)

  2. fastjson (阿里巴巴出品, 功能简单, 性能高, 支持 java 原生序列化, 但漏洞很多)

  3. jackson(fasterxml 出品, 功能强大, 性能较高, 支持 java 原生序列化)

  4. kryo(google 出品, 功能强大, 性能较高, 支持 java 原生序列化)


序列化的步骤

  1. 定义一个类, 实现 Serializable 接口.

  2. 调用 ObjectOutputStream 类的 writeObject() 方法, 把对象序列化到输出流中.

  3. 调用 ObjectInputStream 类的 readObject() 方法, 把对象从输入流中反序列化出来.


性能问题


总结