如何解决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 举报,一经查实,本站将立刻删除。