微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java虚拟机的字节序

如何解决Java虚拟机的字节序

class文件中的多字节数据以大端存储。

摘自Java虚拟机规范Java SE 7版第4章:class文件格式

一个文件由8位字节的流组成。通过分别读取两个,四个和八个连续的8位字节来构造所有16位,32位和64位量。多字节数据项始终以高字节顺序存储,高字节在前。

此外,如果字节码指令中的操作数跨越多个字节,则它也是big-endian。

Java虚拟机规范的Java SE 7版第2.11节:指令集摘要

如果操作数的大小超过一个字节,则将其首先存储在big-endian顺序-high- order字节中。例如,局部变量中的无符号16位索引存储为两个无符号字节,byte1并且byte2,使得其值为(byte1 << 8) | byte2

所以是的,我认为可以说Java虚拟机使用big-endian。

解决方法

Java在其虚拟机中使用什么字节序?我记得在某处读过文章,它取决于它所运行的物理机器,然后在其他地方,我读到,我相信它始终是大字节序。哪个是正确的?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。