序列化

序列化与反序列化:如何通过网络传输结构化的数据?
二进制流和字节流本质上是一样的。
将结构化数据转换为字节流的过程称之为序列化。序列化同样适用于将结构化数据保存在文件中。

序列化的因素:
(1)序列化后的数据最好易于阅读
(2)实现简单
(3)速度快
(4)序列化后的信息密度越大越好

对于强业务类系统,比如电商类、社交类的系统,他们的特点是业务复杂,但对性能要求没有那么苛刻,推荐使用json。如果json的性能不够,可以使用kryo。

kryo.register(User.class);
Output output = new Output(new FileOutputStream("file.bin"));
kryo.writeObject(output, user);

Kryo序列化与Java序列化
https://blog.csdn.net/qq_36142114/article/details/80540570

为什么不能直接把内存中,对象对应的二进制数据直接通过网络发送出去,或者保存在文件中呢?为什么还需要序列化和反序列化呢?

内存中的对象数据应该具有语言独特性,例如表达相同业务的User对象(id/name/age字段),Java和PHP在内存中的数据格式应该不一样的,如果直接用内存中的数据,可能会造成语言不通。通常两个服务之间没有严格要求语言必须一致,只要对序列化的数据格式进行了协商,任何2个语言直接都可以进行序列化传输、接收

消息队列需要更高性能的序列化和反序列化

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值