社区
BSV区块链
帖子详情
什么是序列化和反序列化?
ちんたくよう
2021-03-09 07:16:13
之前在某篇文章里看到的这两个词。
据说是数据传输的时候用的一种技术,求大神解答。
...全文
2868
1
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
BSV区块链
2021-03-14
序列化和反序列化是非常常见的计算机技术名词。
当 A 把一段数据发给 B 时,不同的序列化规则会影响 B 对收到数据的解释。举个例子。
程序中,一般用特定的数据结构,来表示和存储具体的数据,就像上面描述的那样。
这样的数据,方便人们识别和理解,方便程序操作,但不方便在网络上传输。
在传输前需要将数据结构转换成方便网络传输的字节流形式,这个过程称为序列化。
从字节流“恢复”数据成数据结构的形式,这个过程称为反序列化。
举个例子方便理解。我们可以定义下面的数据结构,来表示二十四小时制的时间。
Type Time {
uint32_t hour;
uint32_t minute;
uint32_t second;
};
时、分、秒分别用 4 字节整数表示,20:35:10可以表示为
Time t;
t.hour = 20; // 00 00 00 14
t.minute = 35; // 00 00 00 23
t.second = 10; // 00 00 00 0a
注释后面是数据的十六进制表示。在传输数据时,发送
00 00 00 14 00 00 00 23 00 00 00 0a
并规定:
你会收到 12 字节的数据
第一个 4 字节数据是“时”
第二个 4 字节数据是“分”
第三个 4 字节数据是“秒”
对方在收到数据后,就能根据规则,将字节流还原成数据结构的形式。
注意到,数据结构不仅包含数据的值,还描述“这是什么数据”。
当你看到t.hour = 20,你知道这个数据表示时间中的“小时”,值为 20。
但当你看到00 00 00 14,你只知道这个数据的值为 20,但不知道这是 20 时,还是 20 分,还是 20 秒。所以,需要定义序列化的规则。
更多细节内容,请关注开发者专区博客
https://blog.csdn.net/aaron67/article/details/106751818
打赏
举报
回复
赞
相关推荐
什么是
反
序列化
?
反
序列化
的过程,原理
本篇主要分析java
序列化
、
反
序列化
的过程,原理, 并且通过简化版URLDNS做案例分析利用链原理。
什么是
序列化
?
反
序列化
? 场景使用? 怎么实现???
今天煌sir来带你扫扫盲, 关于什么是序列...为什么要
序列化
和
反
序列化
?什么场景使用? 三.
序列化
有什么作用?好处? 四.如何实现
序列化
和
反
序列化
? 实现
序列化
的前提 实现代码 第一步:创建一个 JavaBean 对象 ...
序列化
和
反
序列化
的底层实现原理是什么?
遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是
序列化
、什么是
反
序列化
、什么场景的时候才会用到等,然后面试官说:那你能说一下
序列化
和
反
序列化
底层是如何实现的吗?一脸懵逼,然后回家等通知! 一...
什么是
序列化
与
反
序列化
,为什么
序列化
遇到这个 Java Serializable
序列化
这个接口,我们可能会有如下的问题a,什么叫
序列化
和
反
序列化
b,作用。为啥要实现这个 Serializable 接口,也就是为啥要
序列化
c,serialVersionUID 这个的值到底是在怎么设置的...
Java 之 Serializable
序列化
和
反
序列化
的概念,作用的通俗易懂的解释
遇到这个 Java Serializable
序列化
这个接口,我们可能会有如下的问题a,什么叫
序列化
和
反
序列化
b,作用。为啥要实现这个 Serializable 接口,也就是为啥要
序列化
c,serialVersionUID 这个的值到底是在怎么设置的...
发帖
BSV区块链
微信扫一扫
点击复制链接
分享社区
下载分享明细
36
社区成员
64
社区内容
BSV区块链(BSV Blockchain)是唯一遵从2008年发布的比特币白皮书宗旨的全球公有链,具有稳定性、可拓展性、安全性、支持安全即时交易四大核心特性。
区块链
比特币
数字货币
技术论坛(原bbs)
社区管理员
加入社区
帖子事件
创建了帖子
2021-03-09 07:16
社区公告
暂无公告