一篇文章搞明白Integer、new Integer() 和 int 的概念与区别
时间: 2024-02-12 09:08:27 浏览: 18
在Java中,整数类型的表示方法有两种:基本数据类型int和包装类型Integer。它们的区别主要在于内存的分配和使用方式不同。
1. int
int是Java的一种基本数据类型,表示整数,占用4个字节,可以表示的范围为-2147483648到2147483647。它在内存中分配的是栈内存,存储的是数值本身。
例如:
```
int a = 10;
```
2. Integer
Integer是Java提供的一个类,属于包装类,用于封装int类型的值。它占用的内存比int类型多,因为要存储一些额外的信息,例如对象头等。另外,它在内存中分配的是堆内存。
```
Integer b = new Integer(10);
```
3. 包装类型和基本数据类型的转换
Java提供了自动装箱和拆箱的功能,使得基本数据类型和包装类型之间的转换更加方便。
自动装箱是指将基本数据类型转换为对应的包装类型,例如:
```
int a = 10;
Integer b = a;
```
自动拆箱是指将包装类型转换为对应的基本数据类型,例如:
```
Integer b = new Integer(10);
int a = b;
```
4. Integer与int的比较
在使用Integer和int类型进行比较时,需要注意它们之间的差别。
使用“==”进行比较时,如果两个变量都是Integer类型,且它们的值在-128到127之间,那么它们会被认为是同一个对象,返回true。如果不在这个范围内,那么会返回false。
例如:
```
Integer x = 10;
Integer y = 10;
System.out.println(x == y); // true
Integer m = 128;
Integer n = 128;
System.out.println(m == n); // false
```
而对于int类型和Integer类型之间的比较,即使它们的值相等,也会返回false,因为它们不是同一个类型的对象。
例如:
```
int a = 10;
Integer b = 10;
System.out.println(a == b); // false
```
5. 总结
- int是Java的一种基本数据类型,表示整数,占用4个字节。
- Integer是Java提供的一个类,属于包装类,用于封装int类型的值。它占用的内存比int类型多,因为要存储一些额外的信息。
- Java提供了自动装箱和拆箱的功能,使得基本数据类型和包装类型之间的转换更加方便。
- 在使用Integer和int类型进行比较时,需要注意它们之间的差别。