Java中基础类型的包装类在拆箱和装箱过程中起到了什么用处
1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return
public static void main(java.lang.String[]); Code: 0: bipush 11 2: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 5: astore_1 6: aload_1 7: invokevirtual #3 // Method java/lang/Integer.intValue:()I 10: istore_2 11: return } 可以看到main要领部门,编号2举办了装箱操纵,将原始范例int,装箱成了Integer,挪用的要领为Integer.valueOf;而编号7举办了拆箱操纵将Integer范例转换成了int范例,挪用的要领为Integer.intValue。 自动拆箱装箱的本质 通过上面的说明,我们可以看出所谓的拆箱(unboxing)和装箱(boxing)操纵只不外是一个语法糖的成果。编译器在编译操纵时,本质上照旧会挪用对应包装类的差异要领来举办处理赏罚。 装箱时凡是会挪用包装类的valueOf要领,而拆箱时凡是会挪用包装类的xxxValue()要领,个中xxx为相同boolean/long/int等。 而自动拆箱和装箱的操纵首要产生在赋值、较量、算数运算、要领挪用等常见。此时,我们就必要首要空指针的题目。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |