字节码解释Java自动装箱和拆箱的操作
来源:互联网 发布:70d锦纶单股网络丝 编辑:程序博客网 时间:2024/05/16 15:10
学C++的时候,不管是什么操作,基本上都可以知道编译器到底干了啥。比如运算符。java就是个包装特别好的绅士,其实即便编译器悄悄在私底下干了什么龌龊事儿,我们一般来说也不是很容易就看的到。
不过这些问题可以通过看字节码来解决。
代码很简单:
Integer x = 5;x++;
且看字节码:
第一个红框的内容就是Integer x = 5;的操作,实际上调用了Integer的valueOf方法。
第二个则对应与x++,先取出x的引用ALOAD 1:x,接着调用intValue方法得到值,然后压栈,+1,再调用valueOf进行装箱操作,这样x的值就完成了++。
说到这里顺便提一句,i++对应四句指令,而++i只对应一句inc指令,因此在可以使用后者的情况下就不要使用前者。
0 0
- 字节码解释Java自动装箱和拆箱的操作
- JavA的自动装箱和拆箱
- Java的自动拆箱和装箱
- java的自动装箱和拆箱
- 【浅析java中的自动装箱和拆箱操作】浅析java中的自动装箱和拆箱操作
- Java自动装箱和自动拆箱的陷阱
- java的自动装箱和自动拆箱
- Java 自动装箱和自动拆箱注意的问题
- Java的自动装箱和自动拆箱
- java 自动装箱 和 自动拆箱
- java自动装箱和自动拆箱
- Java自动拆箱和自动装箱
- Java自动装箱和自动拆箱
- JAVA自动装箱和自动拆箱
- Java自动装箱和自动拆箱
- Java自动装箱和自动拆箱
- java的自动装箱自动拆箱
- java的自动装箱和拆箱是什么样子的?
- Android2.3.5系统源码下载
- 第1天学习
- BUPT OJ95 二进制数
- hwui简介
- 通信控件MSComm使用详解
- 字节码解释Java自动装箱和拆箱的操作
- Cocos2d-x 3.0 beta2 环境搭建-在安卓手机上运行Hello World
- 笔试题2,输出如下图形
- linux makefile学习笔记(5)
- C# 访问PostgreSQL 数据库
- 如何在Activity中启动另一个Activity与值传递
- 扫雷小游戏
- QT4.8-VS2008-安装
- OpenGL进阶(十七) - 深入理解OpenGL