笔记
序列化
00 min
2023-2-11
2024-1-9
type
status
date
slug
summary
tags
category
icon
password

JDK Serializable

FST

Kryo

Hessian

Avro

Protobuf

  • 结构化数据存储格式(xml,json等)
  • 高性能编解码技术
  • 语言和平台无关,扩展性好,支持java、C++、Python三种语言。
  • Google开源

Thrift

  • 支持多种语言(C++、C#、Cocoa、Erlag、Haskell、java、Ocami、Perl、PHP、Python、Ruby和SmallTalk)
  • 使用了组建大型数据交换及存储工具,对于大型系统中的内部数据传输,相对于Json和xml在性能上和传输大小上都有明显的优势。
  • 支持通用二进制编码,压缩二进制编码,优化的可选字段压缩编解码等三种方式。
  • FaceBook开源

Jackson

  • Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。
  • 对于复杂类型的json转换bean会出现问题,一些集合Map,List的转换出现问题。
  • Jackson对于复杂类型的bean转换Json,转换的json格式不是标准的Json格式

Gson

  • Gson是目前功能最全的Json解析神器
  • Gson的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar
  • 类里面只要有get和set方法,Gson完全可以将复杂类型的json到bean或bean到json的转换,是JSON解析的神器

FastJson

  • 无依赖,不需要例外额外的jar,能够直接跑在JDK上。
  • FastJson在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用。
  • FastJson采用独创的算法,将parse的速度提升到极致,超过所有json库。
  • 频繁爆漏洞,被相当部分公司禁止使用
 
 
notion image
notion image
 
 
上一篇
交易系统设计
下一篇
Java垃圾回收