例如为什么你可以这样做:
int n = 9;
但不是:
Integer n = 9;
你可以这样做:
Integer.parseInt("1");
但不是:
int.parseInt("1");
最佳答案
int
是原始类型。 int
类型的变量存储要表示的整数的实际二进制值。 int.parseInt("1")
没有意义,因为 int
不是一个类,因此没有任何方法。
Integer
是一个类,与 Java 语言中的任何其他类没有什么不同。 Integer
类型的变量存储对 Integer
对象的引用,就像任何其他引用(对象)类型一样。 Integer.parseInt("1")
是对 Integer
类中的静态方法 parseInt
的调用(请注意,此方法实际上返回 int
而不是 Integer
)。
更具体地说,Integer
是一个具有 int
类型的单个字段的类。当您需要像任何其他对象一样对待 int
时,例如在泛型类型或需要可为 null 的情况下,请使用此类。
请注意,Java 中的每个基本类型都有一个等效的包装类:
字节
有字节
short
有Short
int
有Integer
long
有Long
boolean
有Boolean
char
具有Character
float
有float
double
具有Double
包装类继承自对象类,而原始类则不然。因此它可以在具有对象引用或泛型的集合中使用。
从 java 5 开始,我们有了自动装箱,并且原始类和包装类之间的转换是自动完成的。但请注意,这可能会引入微妙的错误和性能问题;明确转换永远不会有坏处。
关于java - Java中Integer和int有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760806/