为什么前者效率更高,底层到底做了些什么?大家来讨论下。
解决方案 »
- Hibernate启动运行正常,调用rebuildSessionFactory()方法出错?
- java中split的一个小问题
- GregorianCalendar指定月份之后,能取得相应月份的英文表示吗.
- 不同版本的JdK中的Class loader有什么变化
- 有关import的一点小问题
- 编译老是报找不到符号
- 如何使组件获得焦点?
- 请问哪个类可以将日期相加,然后输出再输出准确的日期?
- 哪位高手,给一个 Applet 与 Servlet 通过Http通道进行信息交互的例子
- JcreatorPro的单步调试!
- 我用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中执行的指令一样。