字节码解释Java自动装箱和拆箱的操作
作者:网络转载 发布时间:[ 2014/3/6 9:35:23 ] 推荐标签:C++ java
学C++的时候,不管是什么操作,基本上都可以知道编译器到底干了啥。比如运算符。java是个包装特别好的绅士,其实即便编译器悄悄在私底下干了什么龌龊事儿,我们一般来说也不是很容易看的到。
不过这些问题可以通过看字节码来解决。
代码很简单:
Integer x = 5;
x++;
且看字节码:

第一个红框的内容是Integer x = 5;的操作,实际上调用了Integer的valueOf方法。
第二个则对应与x++,先取出x的引用ALOAD 1:x,接着调用intValue方法得到值,然后压栈,+1,再调用valueOf进行装箱操作,这样x的值完成了++。
说到这里顺便提一句,i++对应四句指令,而++i只对应一句inc指令,因此在可以使用后者的情况下不要使用前者。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
Java性能测试有哪些不为众人所知的原则?Java设计模式??装饰者模式谈谈Java中遍历Map的几种方法Java Web入门必知你需要理解的Java反射机制知识总结编写更好的Java单元测试的7个技巧编程常用的几种时间戳转换(java .net 数据库)适合Java开发者学习的Python入门教程Java webdriver如何获取浏览器新窗口中的元素?Java重写与重载(区别与用途)Java变量的分类与初始化JavaScript有这几种测试分类Java有哪四个核心技术?给 Java开发者的10个大数据工具和框架Java中几个常用设计模式汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等

sales@spasvo.com