什么是大小端?
- 大小端在计算机业界,Endian表示数据在存储器中的存放顺序。
- 比如整形十进制数字:305419896 ,转化为十六进制表示 : 0x12345678 。其中按着十六进制的话,每两位占8个字节。如图
Java中判断CPU是大端还是小端
- Java之中内存分配都在Java虚拟机本身处理好了,全都转换成大端(Big Endian)。但是可以判断CPU是big Endian还是little Endian。Java中可以直接调用java.nio.ByteOrder类的方法nativeOrder()方法,下面是参考的测试代码:
import java.nio.ByteOrder;
public class chapter {
public static void main(String[] args) {
if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
System.out.println("BIG_ENDIAN");
} else {
System.out.println("LITTLE_ENDIAN");
}
}
}