i++,++i和i--

作者: 文贞武毅 | 来源:发表于2019-08-06 23:59 被阅读0次

    对于i=i++ 赋值运算最后算,先算i++
    将1压入操作数栈,将i压入局部变量表
    将i自增,局部变量表中i=2
    再将操作数栈中的1赋值给i
    因此i曾经变为2但结果还是1

    i++和++i在理论效率上是没有什么区别的,因为他们经过编译器优化后的字节码是一样的,
    而在for循环的比较中i--的速度更快,这是因为对于寄存器的操作中,有几个标志位,i--时,减法会影响4个标志位,其中有一个是判断正负,比较时可以直接用这个来判断,而i++只会影响一个是否溢出标志位,每次循环都要多一条指令来判断是否大于阈值

    相关文章

      网友评论

        本文标题:i++,++i和i--

        本文链接:https://www.haomeiwen.com/subject/nqtndctx.html