什么是JAVA序列化
Java 对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将 Java 对象的状态转换为字节数组,以便存储或传输的机制;
相对的,仍可以将字节数组转换回 Java 对象原有的状态。
为什么需要序列化
- 对象持久化,序列化的对象可以摆脱JVM的生命周期;
- 网络数据传输 or RMI
序列化协议比较
序列化并非JAVA独有的概念,只要涉及网络传输,基本都需要序列化和反序列化操作
协议 | 优点 | 缺点 |
---|---|---|
Object Serialize | JAVA原生支持 | 字节数较大,无法跨语言 |
XML/JSON | 格式清晰,跨语言 | 字节数较大,需要引用第三方类库 |
Google Protobuf | 性能出众,跨语言 | 需要引用Protobuf类库 |
fast-serialization | 性能出众,跨语言 | 需要引用Protobuf类库 |
如何实现JAVA序列化
当某类实现java.io.Serializable接口的时候,就标识着这个类可以被序列化和反序列化。当然了,在实践中不会如此简单,有诸多细节需要注意,鉴于网上已经有很多优秀的文章做了详尽的分析,在此不再赘述,可以参考以下链接:
深入理解JAVA序列化
Java序列化机制和原理
网友评论