【发布时间】:2012-03-25 05:19:34
【问题描述】:
背景:我想存储精确到小数点后 4 位的数字,无需四舍五入。所以我想在内部使用整数;例如,12.3456 在内部表示为 123456。但是对于 32b 个整数,我只能数到 214748,这非常小。
我猜 64 位整数是解决方案。但是,在给定运行 64 位 JVM 的机器的情况下,涉及 64 位整数的操作是否效率低于 32 位?
顺便说一句,我正在使用信息检索包 (Solr)、优化包 (Drools) 和其他包用 Java 编写,它们可能无法很好地处理十进制数据类型(如果你建议的话)。
【问题讨论】:
-
在 Java 中,
int总是 32 位,即使在 64 位 JVM 上:docs.oracle.com/javase/1.5.0/docs/api/java/lang/… -
你为什么不做一个测试应用,自己看看?
-
它在 java 中被称为
long,为什么现代处理器是 64 位时它们的效率会低? -
@skaffman,我特别关注 JVM,而您提到的问题似乎倾向于机器代码。
标签: java performance jvm 32bit-64bit