在Java开发工具当中,Java序列化工具是比较常用的,而且种类也有不少,下面小编就来做个对比:
1.Java序列化工具的技术原理对比
Binary Formats & language-specific Ones
Javabuiltin (Java native), javamanual (根据成员变量类型手动编写), fstserliazation , kryo
二进制格式-通用语言-非特定 Ones
protobuf (Google) , Thrift (Facebook) , Avrogeneric, Hessian
JSON 格式
Jackson、Gson、Fastjson
Json-like:
CKS (Textual json-like format), BSON (json-like format with extended datatypes), Jacksonbson, MongoDB
基于 xml 的格式
Xmlxstream
Java序列化工具大致可以分为以上几类,简单概括分为二进制二进制和文本格式(JSON、XML)两大类。
在速度的比较上,一般有以下规律:
Binary > textual
Language-specific > Language-unspecific
在 textual 中,XML 冗余度低于 JSON,这使得它在文本序列化上更加 bson 和更加复杂JSON,框架选择更丰富、更优秀。下面重点介绍下Kryo、Fast-serialiation、Fastjson、Protocol-buffer
2.典型的Java序列化工具分析
互联网公司使用Protobuf、Thrift、Avro等成熟的序列化解决方案来构建RPC框架是一个经过验证的解决方案。
(1)Java Nati