Netty_05_六种序列化方式(JavaIO序列化 XML序列化 Hessian序列化 JSON序列化 Protobuf序列化 AVRO序列化)(实践类)
2023-09-14 09:15:23 时间
文章目录
本文源代码:https://www.syjshare.com/res/NVUD29PW
一、普通的序列化方式(bean对象有直接的java类)
1.1 普通的java io byteArray输入输出流的序列化方式
- java io 序列化和反序列化
- 优点:简单,直接使用 java io ByteArrayOutputStream byte数组输入输出流
- 确定:序列化出来的byte[]数组很大
1.2 xml序列化方式(xml用来做配置文件,这样序列化出来长度很大)
- xml 序列化,只需要序列化和反序列对齐就好
- 优点:序列化为xml
- 缺点:需要额外引入依赖
1.3 Hessian序列化方式(这个Dubbo中使用的序列化方式)
- Dubbo Hessian (在Dubbo中使用的序列化方式)
- 优点:序列化出来的byte[]数组比 java io byteArray输入输出流的要小
- 缺点:需要额外引入依赖
1.4 Json序列化方式(json用来网络传输,序列化可以很小)
- json序列化方式
- 优点:序列化出来的json字符串长度很小,比xml序列化的小太多 (json用于网络传输,xml用于配置文件) (但springboot配置中,用注解取代了xml配置)
- 缺点:需要引入fastjson依赖
需要引入fastjson依赖
二、高级的序列化方式(bean对象没有直接的java类)
2.1 protobuf序列化(谷歌开发的序列化方式,需要.proto文件生成java类)
- protobuf序列化 (google公司开发)
- 优点:比json序列化更小,更方便网络传输
- 缺点:需要引入protobuf依赖,需要 .proto 文件生成 .java 类
2.2 avro序列化(需要.avsc文件生成java类)
三、小结(六种序列化方式)
-
java io 序列化和反序列化
优点:简单,直接使用 java io ByteArrayOutputStream byte数组输入输出流
确定:序列化出来的byte[]数组很大 -
xml 序列化,只需要序列化和反序列对齐就好
优点:序列化为xml
缺点:需要额外引入依赖 -
Dubbo Hessian (在Dubbo中使用的序列化方式)
优点:序列化出来的byte[]数组比 java io byteArray输入输出流的要小
缺点:需要额外引入依赖 -
json序列化方式
优点:序列化出来的json字符串长度很小,比xml序列化的小太多 (json用于网络传输,xml用于配置文件) (但springboot配置中,用注解取代了xml配置)
缺点:需要引入fastjson依赖 -
protobuf序列化 (google公司开发)
优点:比json序列化更小,更方便网络传输
缺点:需要引入protobuf依赖,需要 .proto 文件生成 .java 类 -
Avro序列化
优点:比json序列化更小,更方便网络传输
缺点:需要引入avro依赖,需要 .avro 文件生成 .java 类
最后,简单的方式中,最小的序列化方式就是json了,不需要生成.java类
本文源代码:https://www.syjshare.com/res/NVUD29PW
相关文章
- Hibernate中使用Criteria查询及注解——(hibernate.cfg.xml)
- alibaba的FastJson(高性能JSON开发包) json转换
- PHP将XML转成数组
- Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化
- JQuery处理json与ajax返回JSON实例
- C#合成解析XML与JSON
- 在JavaScript中使用json.js:使得js数组转为JSON编码
- DOM4J 实现对XML文档的增、删、改、查
- Xml 常用属性、方法
- SAP UI5 应用 XML 视图的加载逻辑分析
- Fiori Elements - when is project webapp folder annotation.xml loaded
- Atitit xml转json总结 目录 1.1. XML和JSON之间没有直接映射;元素类型问题1 1.2. Xml与json的对应关系2 1.3. 范例2 2. Jsonlib的问题,,不
- Aittit rpc的实现协议 JSON-RPC XML-RPC . Ws协议webservice 目录 1. XML-RPC协议1 1.1. JSON-RPC远程调用协议 - CieloSun
- atitit.XML类库选型及object 对象bean 跟json转换方案
- 推荐一个谷歌浏览器插件json单独窗口格式化插件JSON-handle
- XMLSpy编辑工具中设置XML的DTD/XSD校验指向本地,而不要直接指向网络去
- XML——读取文件夹下所有的Xml文件,并修改属性,保留上次打开文件的位置
- XML反序列化遇到数字型节点值为空导致反序列化异常
- Python JSON 数据|编码解码JSON数据,import json,json.dumps,json.loads
- XML,Object,Json分析转换Xstream采用
- 谈谈对XML的理解?说明Web应用中Web.xml文件的作用?
- Eclipse 创建 XML 文件
- Tomcat tomcat-users.xml帮你登录Server Status