JAVA序列化

什么是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序列化机制和原理

推荐阅读更多精彩内容

  • 什么是序列化 所谓的序列化,即把java对象以二进制形式保存到内存、文件或者进行网络传输。从二进制的形式恢复成为j...
    德彪阅读 300评论 0 0
  • 1、什么是Java序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行...
    梦工厂阅读 8,735评论 2 26
  • 原文章链接 国内访问cocoapods spec repo速度非常慢,网络不好的话做一次pod update要等半...
    hament阅读 1,292评论 0 0
  • 等待本身就是一个过程,但在这个过程中你要行动起来,不然在等待中等待,那这个“等”是不能为你带来任何改变,不要再等待...
    言海言阅读 98评论 0 1
  • 感觉有些人像小王子,一直在路上,一直在寻找,可他为什么要离开,又到底在寻找什么呢? 他拥有两座火山,一朵玫瑰。 在...
    zacchen阅读 271评论 0 2