首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在小终端CPU架构上运行时,Java是如何处理Endian的?

在小终端CPU架构上运行时,Java是如何处理Endian的?
EN

Stack Overflow用户
提问于 2020-12-21 07:43:49
回答 1查看 382关注 0票数 4

Java是大端处理器,它如何在保持性能的同时处理小端点CPU?JVM (OpenJDK,OpenJ9等)是否有任何特殊的优化来保持性能,就像在小终端平台中有选择性地处于特殊情况下的大端?在访问ByteBuffers或调用本机代码或写入IO或访问易失变量时是否有特殊的处理?Java如何改变小Endian体系结构中的Endian性?在什么点或操作(加载、存储、计算、寄存器、缓存、内存等)她的身份改变了吗?这会有怎样的表现惩罚?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-21 08:22:37

Java是大端处理器,它如何在保持性能的同时处理小端点CPU?

Java不是大端。在Java中Endianness甚至是一个问题的少数地方,API使用大端,但它总是有很好的文档,而且一些API允许您指定您想要的Endianness。

JVM (OpenJDK,OpenJ9等)是否有任何特殊的优化来保持性能,就像在小终端平台中有选择性地处于特殊情况下的大端?

不,JVM使用本机Endianness。

在访问ByteBuffers或调用本机代码或写入IO或访问易失变量时是否有特殊的处理?

是的,不,是的,还有不。

由于JVM使用本机字节顺序,因此不需要处理调用本机代码或访问易失性变量。字节顺序只在(De)序列化到/从字节时才起作用,例如在访问ByteBuffers或写入IO时。

Java如何改变小Endian体系结构中的Endian性?

与在任何地方更改Endianness的方式相同,它交换字节,或按适当的顺序读写字节。

在什么点或操作(加载、存储、计算、寄存器、缓存、内存等)她的身份改变了吗?

它不是,因为JVM使用本机Endianness。只有当本机值转换为/从字节时才应用Endianness。在任何其他时间点上,Endianness都不重要。

这会有怎样的表现惩罚?

没有,因为它什么也做不了。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65389086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档