如何解决在 Java 类文件中使用 0xcafebabe 来识别字节顺序?
是用于标识字节顺序的 Java 类文件的 0xcafebabe
,例如在网络类加载器中? java 类可以被序列化并通过网络发送到另一台机器,以便通过网络类加载器加载来远程执行。在这种情况下,是否使用 0xcafebabe
来查看它是“0xbabecafe”还是“0xcafebabe”?
我想答案是否定的,但可以肯定。我认为 .class 文件中的字节顺序总是大端,我总是在任何机器上的文件系统顶部看到 0xcafe
。当一个类被序列化时,我想它总是在大端(对吗?)。当 .class 或序列化类通过网络逐字节发送时,会保留字节序。因此我们不必自己处理字节顺序。
请告知这是否正确,如果有不正确的情况,请予以纠正。而 0xcafebabe
只是一个标记,告诉“这个文件可以是一个 java 类文件”。
解决方法
你的答案是here:
多字节数据项总是以大端顺序存储,高字节在前。
同一章详细介绍了类文件结构,包括魔法咖啡馆宝贝。
该文件如何通过网络传输取决于所使用的协议。例如 TCP 使用大字节序。但这有点无关紧要,因为您希望在另一端接收相同的文件,无论字节在传输过程中如何排序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。