初识序列化
简而言之,序列化就是把字符串从一种编码系统转化为二进制流发送出去的方法。
计算机总线
计算机使用直流电。
总线是一根信息导线,将电气信号传送给计算机各个部件。
总线分为串行和并行传送。
串行就是1个接着1个字节传。
并行就是1根总线好多根数据线传。
总线结构
由此可见,计算机内使用并行总线,实际也的确如此。
网络,串行。
计算机,并行。
并行复杂,计算能力需求强;串行弱,计算能力需求弱(网卡基本上是单片机)。
(加入计算机1个字是8bit,那么就说一次要处理8位,所以计算能力强)
图中还可以插入显卡,俗称GPU,GPU也越来越重要。
GPU是内存+CPU的组合体–所以贵。
所以,你如何将一下子传8bit的总线的数据给搞成8bit拍成一排?
cpu?
cpu里面是运算器和控制器。
运算器作各种操作的,控制器作逻辑与或非的。
序列化也得通过总线发出去啊,所以》。。。
关键是怎么序列化?
怎么序列化?
那么,序列化其实很简单。
比如:数字255,如果采用文本格式的序列化例如xml,则会转化为3个字节存储。每个字符是ascill码,占1字节。
而采用二进制则是0xff,只用1个字节存储。
所以,二进制格式比文本格式更紧凑
。这里的紧凑也不是唯一的,因为处理像“hello"这样的字符串时,没必要为表示h而单独再去设计一种编码,比如我仅仅要表示a~Z的52个字符,那么6bit就是2^6=64就完美表示这几个字符了,而且还多几位,我甚至可以将多出来的几位设置为其他字符。
但是…这种格式只有你自己设计的程序可以完美阅读,而且请注意,你自己也是读不懂的。因此之比较字符串还是差别一样的。
然后就是程序在编译为可执行文件时生成的是二进制文件。
其实二进制文件有什么?编译后的,图片,视频,都是。
就是inputstream处理的麻。