Java 中 Integer 和 int 的区别
在 Java 中,int 和 Integer 都用于存储整数类型数据,两者之间的主要区别在于 int 的类型是基本类型,而 Integer 是类类型。当开发过程中涉及到面向对象编程的概念时,这种差异变得非常重要,因为 int 遵循基本数据类型的原则,而 Integer 则表现为包装类。
以下是 int 和 Integer 之间的重要区别。
序号 | 关键点 | int | Integer |
---|---|---|---|
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
广告