在java类文件中使用0xcafebabe来标识字节顺序?

rdrgkggo  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(360)

0xcafebabe 用于识别字节顺序的java类文件的名称,例如在网络类加载器中?一个java类可以被序列化,并通过网络发送到另一台机器上,通过网络类加载器被加载来远程执行。在这种情况下,是吗 0xcafebabe 用于查看是“0xbabecafe”还是“0xcafebabe”?
我想答案是肯定的。我认为.class文件中的字节顺序总是以大端为单位的,我总是能看到 0xcafe 在任何机器的文件系统中都处于最高层。当一个类被序列化时,我想它总是用big-endian(对吗?)。当.class或序列化类通过网络逐字节发送时,endianness将被保留。因此,我们不必自己处理字节顺序。
如果这是正确的,请告知;如果有不正确的情况,请告知。以及 0xcafebabe 仅仅是一个标记来告诉“这个文件可以是一个java类文件”。

velaa5lx

velaa5lx1#

你的答案是:
多字节数据项总是以大端顺序存储,高位字节排在第一位。
同一章详细介绍了类文件结构,包括magic cafebabe。
如何通过网络传输此文件取决于使用的协议。例如,tcp使用big endianness。但这有点无关紧要,因为您希望在另一端接收相同的文件,而不管在传输过程中字节是如何排序的。

相关问题