小编典典

Java中Integer和int有什么区别?

java

例如,为什么可以这样做:

int n = 9;

但不是:

Integer n = 9;

你可以执行以下操作:

Integer.parseInt("1");

但不是:

int.parseInt("1");

阅读 479

收藏
2020-03-11

共1个答案

小编典典

int是原始类型。类型的变量int存储要表示的整数的实际二进制值。int.parseInt("1")没有意义,因为int它不是类,因此没有任何方法。

Integer是一个类,与Java语言中的其他类没有什么不同。类型变量Integer存储对对象的引用Integer,就像存储任何其他引用(对象)类型一样。Integer.parseInt("1")是对parseInt类的静态方法的调用Integer(请注意,此方法实际上返回an int而不是an Integer)。

更具体地说,Integer是一个具有单个type字段的类int。此类用于需要int与其他任何对象一样对待的地方,例如在通用类型或需要可为空的情况下。

请注意,Java中的每个原始类型都有一个等效的包装器类:

  • byte has Byte
  • short has Short
  • int has Integer
  • long has Long
  • boolean has Boolean
  • char has Character
  • float has Float
  • double has Double

包装器类从Object类继承,而原始类则没有。因此,它可以用于带有对象引用或泛型的集合中。

从Java 5开始,我们具有自动装箱功能,并且原始类和包装类之间的转换是自动完成的。但是要当心,因为这可能会引起细微的错误和性能问题;明确表示转化永远不会受到伤害。

2020-03-11