例如,你为什么可以这样做:
int n = 9;
但不是:
Integer n = 9;
你可以做到:
Integer.parseInt("1");
但不是:
int.parseInt("1");
例如,你为什么可以这样做:
int n = 9;
但不是:
Integer n = 9;
你可以做到:
Integer.parseInt("1");
但不是:
int.parseInt("1");
int
是基元类型.类型为int
的变量存储要表示的整数的实际二进制值.int.parseInt("1")
没有意义,因为int
是not个类,因此没有任何方法.
Integer
是一个类,与Java语言中的任何其他类没有什么不同.类型Integer
的变量存储references到Integer
个对象,就像任何其他引用(对象)类型一样.是从类Integer
对静电方法parseInt
的调用(请注意,此方法实际上返回的是int
,而不是Integer
).
更具体地说,Integer
是具有类型int
的单个字段的类.此类用于需要像对待任何其他对象一样对待int
的情况,例如在泛型类型或需要为空的情况下.
请注意,Java中的每个基元类型都有一个等效的wrapper类:
byte
等于Byte
short
等于Short
int
等于Integer
long
有Long
boolean
等于Boolean
char
等于Character
float
等于Float
double
等于Double
包装器类继承自对象类,而基元类则不继承.因此,它可以在具有对象引用或泛型的集合中使用.
自Java5以来,我们有了自动装箱,原语和包装类之间的转换是自动完成的.但是要小心,因为这可能会带来微妙的错误和性能问题;直言不讳地谈论皈依从来都没有坏处.