数据序列化

数据序列化(Serialization)

数据序列化就是将对象或者数据结构转化成特定的格式,使其可在网络中传输,或者可存储在内存或者文件中。反序列化则是相反的操作,将对象从序列化数据中还原出来。

而数据序列化后的数据格式可以是二进制,可以是XML,也可以是JSON等任何格式。
我们要明确的是:数据序列化的重点在于数据的交换和传输。

序列化的关注点/衡量标准

1.序列化后的数据大小
因为序列化后的字节流(二进制数据)通常是通过网络进行传输的,因此序列化后的内容越少传输耗时也就越短。
补充:java原生的序列化机制,不能做到对象结构的复用,导致序列化之后的数据很大。

2.序列化和反序列化的耗时及占用的cpu

3.是否支持跨语言,跨平台
在异构的网络系统中,网络通信双方可能是不同的语言,比如一端是Java,另一端是C。或者一端是Windows操作系统,另一端是Linux操作。

Java原生序列化的缺点:
1.不能做到对象结构的复用,导致序列化后的数据较大.
2.跨语言性较差.要求对端语言只能是java语言
3.序列和反序列化耗费的cpu较多.

你可以这样理解:假设你传递的是字符串,没有问题,所有的机器都可以识别正常的字符串。

那么现在假设你传递的参数是一个 Java 对象,比如叫 cat。服务器并没有那么智能,它并不会知道你传递的是一个 Java 对象,而不是其他类型的数据,它识别不了 Java 对象。

因为Java 对象本质上是 class 字节码,服务器并不能根据这个字节码识别出该 Java 对象。所以,要提供一个公共的格式,不仅 Windows 能识别,你的服务器也能识别的公共的格式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值