为什么前者效率更高,底层到底做了些什么?大家来讨论下。
解决方案 »
- 好心人
- JDK输出日志
- InetAddress.getLocalhost().getHostAddress() 多网卡?
- 到底哪里不对!?这段代码改了一个小时了。还是有错误,大家帮忙
- 关于"for (String g greeting)"的用法不能运行在JSDK1.5_??中的问题
- 关于Thread类的控制问题。。。凡答复必加分!!!
- 如何遍历硬盘内的所有文件?
- 求救阿!我的毕业设计 现在正在做之中 有一个问题 需要大家解决
- java访问Domino的驱动程序谁有啊
- 如何用SQLServer2k-JDBC连接数据库?
- 我用httpclient包,模拟发送post请求,已经可以了,但是遇到一种比较特殊的post请求,求解
- 《java编程思想》和《java核心技术 I》哪本适合初学者看?
至于i=i+j;应当是前面i自加的值再加上j的值就好了
不注意,一个地方不注意,那么整体效率就会很低了。解释:为什么 i+=j 的效率高.首先咱们先看看 i+=j的情况.首先在 栈空间中获取 变量 j ,然后在 获取变量 i , 遇到 +=运算 ,那么计算机就会把i的值加上j的值在放入地址映射表中。而 i = i+j ,需要取得 变量i ,取得变量 j,然后在进行+运算,然后在变量i ,在i+j的值放到地址映射表对应i的位置.所以一比较, i+=j的效率会比较高.
变量有2个 i j;
i+=j;里面出现2个变量,2个符号;
i=i+j;里面出现3个变量和2个符号;
如果你很的要去比较它们之间微妙差距那就看他们初始化变量的时间吧!
2种 经过编译器优化后两者在JVM中执行的指令一样。