例如,为什么可以这样做:
int n = 9;
但不是:
Integer n = 9;
你可以执行以下操作:
Integer.parseInt("1");
int.parseInt("1");
int是原始类型。类型的变量int存储要表示的整数的实际二进制值。int.parseInt("1")没有意义,因为int它不是类,因此没有任何方法。
int
int.parseInt("1")
Integer是一个类,与Java语言中的其他类没有什么不同。类型变量Integer存储对对象的引用Integer,就像存储任何其他引用(对象)类型一样。Integer.parseInt("1")是对parseInt类的静态方法的调用Integer(请注意,此方法实际上返回an int而不是an Integer)。
Integer
Integer.parseInt("1")
parseInt
an int
an Integer
更具体地说,Integer是一个具有单个type字段的类int。此类用于需要int与其他任何对象一样对待的地方,例如在通用类型或需要可为空的情况下。
type
请注意,Java中的每个原始类型都有一个等效的包装器类:
包装器类从Object类继承,而原始类则没有。因此,它可以用于带有对象引用或泛型的集合中。
从Java 5开始,我们具有自动装箱功能,并且原始类和包装类之间的转换是自动完成的。但是要当心,因为这可能会引起细微的错误和性能问题;明确表示转化永远不会受到伤害。