什么是序列化和反序列化?

序列化的核心目的是为了解决网络通信之间的对象传输的问题。也就是说,怎么去把当前J V M进程里面的一个对象跨网络传输到另外一个J V M进程进行恢复。

而序列化就是把内存里面的对象转换为字节流,以便用来实现存储和传输,而反序列化就根据从文件或网络上获取到的对象的字节流,根据字节流里面保存的对象描述信息和状态,重新构建一个新的对象。

其次,系列化的前提是为了保证通信双方对于对象的一个可识别性,所以很多时候我们会把对象先转化为通用的解析格式,比如说Json、Xml或者其他一些格式,然后再把它们转化为数据流进行网络传输,从而实现跨平台或者跨语言的一个可识别性。

补充:

关于序列化的选择问题。市面上开源的序列化技术非常多,比如说像Json、Xml、Protobuf、Kyro、Haison等等。

那么在实际应用里哪种系列化更合适,我认为有几个关键因素。

第一个是系列化之后的一个数据大小。因为数据大小会影响到传输的一个性能。

第二个是序列化的性能。序列化耗时,较长会影响想到业务的一个性能。

第三个是要判断他是否支持跨平台和跨语言的一个特性。

第四个是技术的成熟度。越成熟的方案使用的公司越多,也就越稳定。

总结:

序列化是将对象转换成字节流数据用于传输和存储。

反序列化是读取字节流数据转换构成对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值