Java 中序列化与反序列化是什么?
序列化:将 Java 对象转化成可传输的字节序列格式(字节流、JSON、XML),以便于传输和存储。
反序列化:将字节序列格式数据转化成 Java 对象的过程。
1、为什么需要序列化和反序列化?
序列化和反序列化是为了解决网络通信对象的传输问题,将 JVM 的对象转化为字节流传输到另一个 JVM 的对象中;序列化就是将 JVM 对象转化为字节流便于传输,反序列化就是将字节流转换为 JVM 对象。
2、如何实现序列化?
类必须实现 serializable 接口才能被序列化;
ObjectOutputStream 用于序列化
ObjectInputStream 用于反序列化
3、应用场景
对象持久化:将对象的状态保存到文件或数据库中;
远程调用:在远程方法调用中,通过网络传输序列化后的对象,也就是字节流;
缓存:将对象序列化后存入缓存,便于快速恢复使用;