您可以使用该
javap工具亲自查看。编译以下代码:
public class AutoboxingTest{ public static void main(String []args) { Integer a = 3; int b = a; }}编译和反汇编:
javac AutoboxingTest.javajavap -c AutoboxingTest
输出为:
Compiled from "AutoboxingTest.java"public class AutoboxingTest extends java.lang.Object{public AutoboxingTest(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: returnpublic static void main(java.lang.String[]); Code: 0: iconst_3 1: invokestatic #2; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 4: astore_1 5: aload_1 6: invokevirtual #3; //Method java/lang/Integer.intValue:()I 9: istore_2 10: return}因此,如您所见,自动装箱将调用static方法
Integer.valueOf(),而自动拆箱
intValue()将在给定
Integer对象上调用。没什么,真的-
只是语法糖。



