int和Integer之理解自动拆箱与装箱
程序员文章站
2022-05-06 08:47:49
...
自动装箱是一种语法糖,发生在编译阶段,也就是生成的字节码是一致的。
public class Test22 {
public static void main(String[] args) {
Integer integer=1;
int a=integer++;
}
}
反编译之后
Compiled from "Test22.java"
public class Test22 {
public Test22();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_1
1: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
4: astore_1
5: aload_1
6: astore_3
7: aload_1
8: invokevirtual #3 // Method java/lang/Integer.intValue:()I
11: iconst_1
12: iadd
13: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
16: dup
17: astore_1
18: astore 4
20: aload_3
21: invokevirtual #3 // Method java/lang/Integer.intValue:()I
24: istore_2
25: return
}
- 装箱:基本类型=》对应的引用类型
- 拆箱:对应的引用类型=》基本类型
下一篇: android 自定义控件