Java包装类之Integer

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念
(1)装箱:是指将基本数据类型的值转为引用数据类型。
(2)拆箱:是指将引用数据类型的对象转为基本数据类型。
JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象
Java中的每种基本类型都有对应的包装类,具体如表所示。
基本数据类型以及对应包装类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.lang.Integer;
public class API {
public static void main(String[] args) {
//示例一
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i==j);//输出false 因为比较的是内存地址
//示例2
Integer i2 = 1;
Integer j2= 1;
System.out.println(i2==j2);//输出true 因为在取值范围之内 每个数值都有对应固定的地址 编译时被翻译成:Integer i4 = Integer.valueOf(127); 所以比较的是数值

//示例3
Integer i3 = 128;
Integer j3= 128;
System.out.println(i3==j3);//输出false 因为数值范围为-128~127 超过部分将重新分配内存 所以此处比较的是地址

//示例4
Integer i4 = 127;
Integer j4= new Integer(127);
System.out.println(i4==j4);//输出为false new出来的对象存放在堆,而非new的Integer常量则在常量池(在方法区)

//示例5
Integer i5 = 127;
int j5= 127;
System.out.println(i5==j5);//输出true Integer会自动拆箱为int

//示例6
Integer i6 = 128;
int j6= 128;
System.out.println(i6==j6);//输出true Integer会自动拆箱为int

}
}