以下哪种是java中最快的数据类型?
在java数据类型(byte、short、int、float、double、boolean)中,哪一种是编译和计算最快的数据类型?为什么?请清楚地列出原因,以理解它为什么重要?您的速度问题不会归结于您使用的原始类型,过早优化是所有问题的根源。我几乎可以保证您使用的原语类型不会影响程序的速度。根据您需要的用途选择您的类型 这两种类型之间唯一的性能差异是浮点运算与整数运算,其中整数运算明显更快 经验法则-如果您的数据可以自然地表示为整数(例如商店中香蕉的数量),请选择一些整数类型(以下哪种是java中最快的数据类型?,java,Java,在java数据类型(byte、short、int、float、double、boolean)中,哪一种是编译和计算最快的数据类型?为什么?请清楚地列出原因,以理解它为什么重要?您的速度问题不会归结于您使用的原始类型,过早优化是所有问题的根源。我几乎可以保证您使用的原语类型不会影响程序的速度。根据您需要的用途选择您的类型 这两种类型之间唯一的性能差异是浮点运算与整数运算,其中整数运算明显更快 经验法则-如果您的数据可以自然地表示为整数(例如商店中香蕉的数量),请选择一些整数类型(byte,shor
byte
,short
,int
,long
)。如果你的数据是用实数表示的(你买的香蕉的公斤数),选择float
或double
每一种类型都有其特殊性,您需要了解它们的范围,如果要分配数百万个,还需要了解它们的内存占用
编辑处理OP的评论: 你能告诉我为什么整数运算更快吗 首先,我必须承认我所说的理论上是不正确的。这完全取决于运行代码的计算机的体系结构 一般来说,这种说法适用于当前的兼容PC的处理器。这一切归结为数字的内部表示(搜索整数值和浮点数)和处理器的内部机制、它们的计算单元以及某些操作的快捷方式。这至少是几节课的主题 过度简化告诉我们,使用整数计数更容易,因为它们的存储和处理方式比浮点数简单得多 也不要忘记,这在不同的处理器和不同的体系结构上是不同的 我写了一个简单的测试,显示了我的结果:
private final static int MAX = 1_000_000_000;
public static void main(String[] args) {
long time; // no see
time = System.currentTimeMillis();
int intnum = 0;
for (int i = 0; i < MAX; i++) {
intnum += i;
}
System.out.println("int:\t" + (System.currentTimeMillis() - time));
time = System.currentTimeMillis();
long longnum = 0;
for (int i = 0; i < MAX; i++) {
longnum += i;
}
System.out.println("long:\t" + (System.currentTimeMillis() - time));
time = System.currentTimeMillis();
float floatnum = 0;
for (int i = 0; i < MAX; i++) {
floatnum += i;
}
System.out.println("float:\t" + (System.currentTimeMillis() - time));
time = System.currentTimeMillis();
double doublenum = 0;
for (int i = 0; i < MAX; i++) {
doublenum += i;
}
System.out.println("double:\t" + (System.currentTimeMillis() - time));
// just to use the values, don't pay attention to the results
System.out.println();
System.out.println(intnum);
System.out.println(longnum);
System.out.println(floatnum);
System.out.println(doublenum);
}
虽然(我甚至没有尝试太多),但这本书相当准确地描述了我在现实世界中的经历
整数是最快的,其次是long
,然后是浮点类型
如果我有64位处理器、操作系统和JVM,
int
和long
可能处于同一级别(就像我的电脑上的float
和double
一样)。以什么方式最快?编译?分配大量的资金?计算?您想解决什么问题?以便对世界上所有类型使用相同的数据类型
?因为它是最快的。什么是。。。用于编译的最快数据类型?什么意思?我想你需要问一个恰当的问题。我不知道哪一个最快,但就记忆而言,它们有区别。为了能够回答这个问题,请拿A4纸,将数据类型名称写在单独的纸上,用它们制作纸飞机,然后扔掉每一个,测量距离和飞行时间。然后你会得到结果。。。无论是这样,还是你的问题都和这条评论一样有意义。但是它们可以改变内存使用;)。。。但我真的不认为这是作者的想法。我担心你会建议一些特定的数据类型+1对于根据您的需要选择您的类型
您能告诉我为什么整数计算更快吗?@DurgaPrasad9v答案编辑。
int: 578 ms
long: 1578 ms
float: 3156 ms
double: 3172 ms