在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 Native 序列化工具
Java本身提供的序列化工具基本上可以在大部分场景下对任务进行序列化,本文的序列化机制是非常详细的讲解(78200

本文对比了Java序列化工具,包括Java内置、Kryo、Fast-serialization、Fastjson、Protocol-buffer、Thrift和Avro。Java原生序列化效率低且记录大量元数据,而Kryo和FST在速度和性能上有显著提升。JSON解析工具如Fastjson也可作为序列化选项。Protocol-buffers和Thrift适合高效、跨语言的数据通信,Avro则适合动态类型语言。
最低0.47元/天 解锁文章
873

被折叠的 条评论
为什么被折叠?



