Java 中 Integer 和 int 的区别


在 Java 中,int 和 Integer 都用于存储整数类型数据,两者之间的主要区别在于 int 的类型是基本类型,而 Integer 是类类型。当开发过程中涉及到面向对象编程的概念时,这种差异变得非常重要,因为 int 遵循基本数据类型的原则,而 Integer 则表现为包装类。

以下是 int 和 Integer 之间的重要区别。

序号关键点intInteger
1类型int 是一种数据类型,用于存储 32 位带符号的二进制补码整数。另一方面,Integer 是一个包装类,它将基本类型 int 封装成一个对象。
2用途int 有助于将整数值存储到内存中。Integer 有助于根据需要将 int 转换为对象,并将对象转换为 int。
3灵活性与 Integer 相比,int 的灵活性较差,因为它只允许在其中存储整数的二进制值。另一方面,Integer 在存储和操作 int 数据方面更灵活。由于包装类继承了 Object 类,因此它们可以在包含 Object 引用或泛型的集合中使用。
4内存分配如前所述,int 是一种基本数据类型,需要 32 位(4 字节)来存储。另一方面,Integer 是一个对象,需要 128 位(16 字节)来存储其 int 值。
5强制转换在 Java 中,不能直接或通过强制转换将字符串值(仅包含整数)分配给 int 变量。对于 Integer,我们可以使用 Integer(String) 构造函数将字符串分配给 Integer 类型的对象,或者甚至使用 parseInt(String) 将字符串字面量转换为 int 值。
6直接转换为其他进制对于 int,我们无法将其整数值转换为其他进制。但是,在 Integer 中,我们可以使用 toBinaryString()、toOctalString() 或 toHexString() 分别直接将其整数值转换为二进制、八进制或十六进制格式。
7允许的操作int 不允许使用任何内置函数来更改其值或语法。但是,在 Integer 中,我们可以使用 reverse()、rotateLeft() 和 rotateRight() 分别反转数字或将其向左或向右旋转。

int 与 Integer 的示例

JavaTester.java

示例

 实时演示

public class JavaTester {
   public static void main(String args[]){
      Integer a = new Integer("456");
      // Casting not possible
      // int a = (int)"456";
      // Casting not possible
      // int c="456";
      // Casting possible using methods
      // from Integer Wrapper class
      int b = Integer.parseInt("456");
      System.out.print(b);
   }
}

输出

456

更新于: 2020-03-02

11K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告