常用序列化方式
jdk自带对象序列化
- 对象需要实现Serializable接口
- 通过ObjectOutputStream和ObjectInputStream实现对象的序列化和反序列化
- 序列化后的数组对象占用空间过大,不利于网络传输,不支持跨语言
JSON和XML序列化
- 可以使用常用的JSON开源框架进行序列化,比如fastjson、gson、jackson。
- 序列化后的结果以json格式展示,方便问题调试,占用空间比JDK自带的占用空间要小
- 可以适用一些并发量不是很大的场景,方便排查问题,支持跨语言
protobuf - 谷歌提供的序列化工具包
- 序列化效率很高,序列化后的体积是json的十分之一,同时支持跨语言。
- 缺点就是需要自己手动编写.proto文件用来描述序列化格式,然后编译成java文件。
protostuff - 基于protobuf实现的序列化工具包
- 和protobuf的优点一样,但是却避免了protobuf的缺点,使用方式更加简单。
网友评论