在 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 使用大字节序。但这有点无关紧要,因为无论传输过程中字节的顺序如何,您都希望在另一端收到相同的文件。