加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Java中基础类型的包装类在拆箱和装箱过程中起到了什么用处

发布时间:2021-05-24 05:48:04 所属栏目:编程 来源:互联网
导读:题目重现 下面通过一个简朴的示例才重现一下非常呈现的场景。 public classBoxTest{ public static voidmain(String[]args){ MapString,Objectresult=httpReques

       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等。

而自动拆箱和装箱的操纵首要产生在赋值、较量、算数运算、要领挪用等常见。此时,我们就必要首要空指针的题目。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读