Java中的整数和整数有什么区别?

2022-08-31 05:10:48

例如,为什么你可以做:

int n = 9;

但不是:

Integer n = 9;

你可以做:

Integer.parseInt("1");

但不是:

int.parseInt("1");

答案 1

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

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

更具体地说,是具有单个类型字段的类。此类用于需要像对待任何其他对象一样对待的对象的情况,例如在泛型类型或需要可空性的情况下。Integerintint

请注意,Java 中的每个基元类型都有一个等效的包装类

  • byteByte
  • shortShort
  • intInteger
  • longLong
  • booleanBoolean
  • charCharacter
  • floatFloat
  • doubleDouble

包装类继承自 Object 类,而基元则不继承。因此,它可以在具有对象引用或泛型的集合中使用。

从java 5开始,我们有自动装箱,并且基元和包装类之间的转换是自动完成的。但是,请注意,因为这可能会引入微妙的错误和性能问题。明确介绍转化永远不会有坏处。


答案 2

Integer 几乎只是基元类型 int 的包装器。它允许您使用 Integer 类的所有函数,使您的生活更轻松一些。

如果你是Java的新手,你应该学会欣赏Java文档。例如,您想知道的有关整数类的任何内容都会详细记录下来。

这直接来自 Integer 类的文档:

Integer 类将基元类型 int 的值包装在对象中。Integer 类型的对象包含其类型为 int 的单个字段。