在 Java class 文件中使用 0xcafebabe 来识别字节顺序?
Usage of 0xcafebabe in Java class file to identify byte order?
是 Java class 文件的 0xcafebabe
用于识别字节顺序,例如在网络 class 加载程序中? java class 可以被序列化并通过网络发送到另一台机器,通过网络 class 加载器加载来远程执行。这样的场景,用0xcafebabe
看是“0xbabecafe”还是“0xcafebabe”?
我想答案是否定的,但可以肯定。我认为 .class 文件中的字节顺序总是大端,而且我总是在任何机器上的文件系统顶部看到 0xcafe
。当 class 被序列化时,我想它总是大端(对吗?)。当 .class 或序列化的 class 逐字节通过网络发送时,字节序将被保留。因此我们不必自己看字节顺序。
请告知这是否正确,如果存在不正确的情况,请更正。而 0xcafebabe
只是一个标记,告诉“这个文件可以是 java class 文件”。
你的答案是here:
Multibyte data items are always stored in big-endian order, where the high bytes come first.
同一章详细介绍了 class 文件结构,包括神奇的 cafebabe。
如何通过网络传输此文件取决于所使用的协议。例如 TCP 使用大字节序。但这有点无关紧要,因为无论传输过程中字节的顺序如何,您都希望在另一端收到相同的文件。
是 Java class 文件的 0xcafebabe
用于识别字节顺序,例如在网络 class 加载程序中? java class 可以被序列化并通过网络发送到另一台机器,通过网络 class 加载器加载来远程执行。这样的场景,用0xcafebabe
看是“0xbabecafe”还是“0xcafebabe”?
我想答案是否定的,但可以肯定。我认为 .class 文件中的字节顺序总是大端,而且我总是在任何机器上的文件系统顶部看到 0xcafe
。当 class 被序列化时,我想它总是大端(对吗?)。当 .class 或序列化的 class 逐字节通过网络发送时,字节序将被保留。因此我们不必自己看字节顺序。
请告知这是否正确,如果存在不正确的情况,请更正。而 0xcafebabe
只是一个标记,告诉“这个文件可以是 java class 文件”。
你的答案是here:
Multibyte data items are always stored in big-endian order, where the high bytes come first.
同一章详细介绍了 class 文件结构,包括神奇的 cafebabe。
如何通过网络传输此文件取决于所使用的协议。例如 TCP 使用大字节序。但这有点无关紧要,因为无论传输过程中字节的顺序如何,您都希望在另一端收到相同的文件。