目录
序列化和反序列化的概念
当我们在Java中创建对象的时候,对象会一直存在,直到程序终止时。但有时候可能存在一种"持久化"场景:我们需要让对象能够在程序不运行的情况下,仍能存在并保存其信息。当程序再次运行时 还可以通过该对象的保存下来的信息 来重建该对象。序列化和反序列化 就应运而生了,序列化机制可以使对象可以脱离程序的运行而独立存在。
- 序列化: 将对象转换成二进制字节流的过程
- 反序列化:从二进制字节流中恢复对象的过程
应用场景?
- 对象在进行网络传输的时候,需要先被序列化,接收到序列化的对象之后需要再进行反序列化;比如远程方法调用 RPC
- 将对象存储到文件中的时候需要进行序列化,将对象从文件中读取出来需要进行反序列化。
- 将对象存储到内存中,需要进行序列化,将对象从内存中读取出来需要进行反序列化。
- 将对象存储到数据库(如 Redis)时,需要用到序列化,将对象从缓存数据库中读取出来需要反序列化。
序列化实现的方式
如果使用Jdk自带的