整数为原始类型

时间:2010-01-20 05:07:51

标签: java

为什么整数(int)有原始类型,即使我们有一个整数对象为Integer? 但同样不是String类型。 String没有这种原始类型。 Always String处理对象引用吗?

4 个答案:

答案 0 :(得分:19)

速度。机器代码使用本机CPU指令添加两个int要快得多,而不是必须取两个Integer对象,从中提取int值,然后添加它们,创建一个新结果Integer对象来包含结果。 (how JNI maps primitives

字符串很复杂,有很多方法,因此没有机器码对位。它们被提升为真正的对象。此外,String与使用相同值创建的其他字符串共享状态。没有原始值与其他原始值共享状态。 (immutable can be shared | primitive no sharing

答案 1 :(得分:1)

这是因为处理器(CPU)直接支持整数类型,但不支持字符串。出于性能原因,Java支持一些可能由JVM可能运行的处理器支持的本机类型。

答案 2 :(得分:0)

字符串数据类型比int复杂得多 - 有一个可变量的内存来容纳一个字符串。

答案 3 :(得分:0)

最终计算是在机器级语言下完成的。我想知道原语和对象在性能方面有什么区别。详细说明的答案将不胜感激。