Java之中如何判断CPU是大端(Big Endian)还是小端(Little Endian)
Java之中如何判断CPU是大端(Big Endian)还是小端(Little Endian)
虽然Java之中的内存分配都Java本身都已经处理好了,不存在Big Endian和Little Endian的区别。
jvm是安装大端来处理的。
但是,在一些特殊的情况下,我们任然需要知道CPU到底是big endian或者little endian。
Java里面可以直接的调用java.nio.ByteOrder类的方法nativeOrder()方法,下面的是我的测试代码:
import java.nio.ByteOrder; public class TestCPU { public static void main(String[] args) { if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) { System.out.println("BIG_ENDIAN"); } else { System.out.println("LITTLE_ENDIAN"); } } }
在Windows Intel上输出的结果是:
LITTLE_ENDIAN
在AIX PPC64上面的输出结果是:
=> java TestCPU
BIG_ENDIAN
===
下面是C语言中的作法:
#include <stdio.h> int main() { union ut{ short s; char c[2]; }u; if(sizeof(short) == 2) { u.s = 0x0102; if(u.c[0] == 1 && u.c[1] == 2) { printf("big enidan.\n"); } else if(u.c[0] == 2 && u.c[1] == 1) { printf("little endian.\n"); } } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2019-01-15 Spring Boot 2 (八):Spring Boot 集成 Memcached
2019-01-15 Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源
2019-01-15 Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏
2019-01-15 Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
2019-01-15 Spring Boot 2 (四):使用 Docker 部署 Spring Boot
2019-01-15 Spring Boot 2 (三):Spring Boot 2 相关开源软件
2019-01-15 Spring Boot 2 (二):Spring Boot 2 动态 Banner