首页 > 作文

序列化工具有哪些(序列化和反序列化工具)

更新时间:2023-04-05 04:51:59 阅读: 评论:0

1:为什么要序列化

网络传输的数据都必须是二进制数据,但是在java中都是对象,是没有办法在网络中进行传输的,所以就需要对java对象进行序列化,而且这个要求这个转换算法是可逆的,不然要是不可逆那鬼知道你传过来的是个什么东西

2:java原生序列化

只要让类实现 rializable 接口就行,序列化具体的实现是由objectoutputstream和objectinputstream来实现的

缺点:

1:序列化码流太大2:序列化效率低3:无法跨语言

优点:

1:简单

3:json序列化

json 可能是我们最熟悉的一种序列化格式了,json 是典型的 key-value 方式,没有数据类型,是一种文本型序列化框架,json 的具体格式和特性,网上相关的资料非常多,这里就不再介绍了。他在应用上还是很广泛的,无论是前台 web 用 ajax 调用、用磁盘存储文本类型的数据,还是基于 http 协议的 rpc 框架通信,都会选择 json 格式。

缺点:

1:json进行序列化的额外空间开销比较大,对于大数据量服务就意味着需要巨大的内存和磁盘开销2:json没有类型,但像java这种强类型语言,需要通过反射统一解决,所以性能不会太好

优点:

1:简洁明了

3:hessian

hessian 是动态类型、二进制、紧凑的,并且可跨语言移植的一种序列化框架。hessian 协议要比 jdk、json 更加紧凑,性能上要比 jdk、json 序列化高效很多,而且生成的字节数也更小

student student = new student(); student.tno(101);  student.tname("hessian"); //把student对象转化为byte数组bytearrayoutputstream bos = new bytearrayoutputstream(); hessian2output output = new hessian2output(bos); output.writeobject(student); output.flushbuffer(); byte[] data = bos.tobytearx86 兼容 台式电脑ray(); bos.clo(); //把刚才序列化出来的byte数组转化为student对象bytearrayinputstream bis = new bytearrayinputstream(data); hessian2input input = new hessian2input(bis); student destudent = (student) input.readobject(); input.clo(); system.out.println(destudent);自我介绍作文初一

缺点:

1:官方版本对java里面一些常见对象的类型不支持,比如linkedhashmap、linkedhasht 等,但是可以通过扩展collectionderializer 类修复,locale 类,可以通过扩展 contextrializerfactory 类修复;byte/short 反序列化的时候变成 integer

优点:

1:相对于学前教育专业介绍jdk,json,更加高效,生成的字节数更小2:有非常好的兼容性和稳定性

4:protobuf

protobuf 是 google 公司内部的混合语言数据标准,是一种轻便、高效的结构化数据存储格式,可以用于结构化数据序列化,支持 java、python、c++、go 等语言。protobuf使用的时候需要定义 id孝明天皇l(interface description language),然后使用不同语言的 idl编译器,生成序列化工具类

缺点:

1:为了提高性能,protobuf采用了二进制格式进行编码。这直接导致了可读性差2:对于具有反射和动态语言来讲,用起来比较费劲

优点:

1:高效2:支持多种语言3:支持向前,向后兼容

5:thrift

thrift是facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式,用户通过thrift的idl(接口定义语言)来描述接口函数及数据类型,然后通过thrift的编译环境生成各种语言类型的接口文件,用户可以根据自己的需要采用不同的语言开发客户端代码和服务器端代码。

缺送给女朋友的情话点:

1:没有官方文档2:thrift序列化二进制不可读,调试困难3:buf fix 和更新不积极,维护成本过高4:rpc 在 0.6.1 升级到 0.7.0 是不兼容的

优点:

1:特性丰富2:性能不错3:有很多开源项目的周边支持 都是 thrift

有志者、事竟成,破釜沉舟,百二秦关终属楚; 苦心人、天不负,卧薪尝胆,三千越甲可吞吴. 加油吧,致每个正在奋斗路上的你!!!

本文发布于:2023-04-05 04:51:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/6c442af4b35a5b2c6c39a9ac7067b457.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:序列化工具有哪些(序列化和反序列化工具).doc

本文 PDF 下载地址:序列化工具有哪些(序列化和反序列化工具).pdf

标签:序列化   语言   高效   类型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图