gpt4 book ai didi

java - 序列化:将字节转换为字节?

转载 作者:行者123 更新时间:2023-12-01 21:58:28 25 4
gpt4 key购买 nike

对象本身是一个字节序列,这就是机器如何理解所有数据的方式,无论是对象、文本、图像等。您能否帮我弄清楚为什么我们要将字节序列(对象)转换为另一个字节?当我们进行序列化时,我们是否会重组字节,或者制作一个保存该对象的模板,以便在通过网络传输时赋予它特殊的含义?假设某种方法,按原样从内存中取出对象,并将该对象放入IP数据报中并通过网络发送,可能会出现什么问题?

最佳答案

First: compression.

您必须明白,磁盘上的图像文件和从内存渲染的图像文件 - 是不一样的。在磁盘上它们(通常,忘记 BMP)被压缩。就目前的网络吞吐量和硬盘容量而言,压缩是必不可少的。

Second: architecture.

内存中的数字只是一个位序列,是的。但是,多少位数算作数字呢? 8? 16? 32? 64?任何一位。有字节、字、整数、长整型、 float (见鬼, float !)以及另外几十个。位顺序也很重要,即所谓的大端和小端。因此,一台 (x86) 计算机上的 123456789 与另一台计算机(例如 x64)上的数字不同。

Third: file (read: transmission) format != object-in-memory format.

嗯,文件(或网络数据包)中的数据结构与从内存中的文件加载对象时之间存在差异。此外,内存中的对象结构可能因程序版本而异。 Win 3.1 和 Vista 中加载到内存的镜像有天壤之别。此外,结构打包和 4 位、8 位、16 位、32 位边界对齐等等等。

关于java - 序列化:将字节转换为字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com