java - Java中Integer和int有什么区别?

标签 java class int

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

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 中的每个基本类型都有一个等效的包装类:

  • 字节字节
  • shortShort
  • intInteger
  • longLong
  • booleanBoolean
  • char 具有 Character
  • float float
  • double 具有 Double

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

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

关于java - Java中Integer和int有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760806/

相关文章:

单独文件中的 C++ 类无法编译。已经在 Class.obj 中定义了一个或多个多重定义的符号

java - 将 int 转换为十六进制字符串需要更好的方法

java - 将 ascii 数字数组转换为各自的字符

java - 在 Eclipse 插件中 Hook 保存操作

java - 在 ActionListener 事件上重新填充 JList

java - Android Studio Android Projekt 独立运行 Java

python - 类属性与方法参数性能? Python

java - Liquibase 不更新内存中的 h2 数据库

c++ - 如何从类型(类)转换为标准 :string?

c - 如何将字符串转换为整数类型