装箱
把基本数据类型转换为对应的包装类类型
// 装箱
Integer a = Integer.valueOf(1);
// 自动装箱 通过反汇编可看出这行代码实际使用了 Integer.valueOf(2)
Integer b = 2;
拆箱
把包装类类型转换为对应的基本数据类型
// 拆箱
int c = a.intValue();
// 自动拆箱 通过反汇编可看出这行代码实际使用了 Integer.intValue(b)
int d = b;
反汇编内容:
Code:
0: iconst_1
1: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
4: astore_1
5: iconst_2
6: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
9: astore_2
10: aload_1
11: invokevirtual #3 // Method java/lang/Integer.intValue:()I
14: istore_3
15: aload_2
16: invokevirtual #3 // Method java/lang/Integer.intValue:()I
19: istore 4
21: return