一、什么是序列化
- 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。
- 在序列化期间,对象将其当前状态写入到临时或持久性存储区。
二、为什么序列化
- Java中的实体对象在脱离了内存之后将毫无意义
- 但是现实生活中比如说分布式环境下的RPC调用,就要求实体对象通过网络在两个不同的主机之间交流
- 应对这种矛盾的方案就是序列化
- 先把Java实体序列化为二进制流,然后在另一台机器上将二进制流再反序列化成实体对象
- Java中的序列化原理比较简单,是通过serialVersionUID来实现的
- JVM会在运行时判断类的serialVersionUID来验证版本一致性
- 如果传来的字节流中的serialVersionUID与本地相应类的serialVersionUID相同则认为是一致的
- 可以进行反序列化,否则就会出现序列化版本不一致的异常