资讯专栏INFORMATION COLUMN

i++、++i、i = i++、i = ++i解惑

newsning / 3061人阅读

摘要:解惑相关字节码指令将一个的型常量常量加载到操作数栈当取值采用指令,取值采用指令,取值采用指令,取值采用指令。

i++、++i、i = i++、i = ++i解惑 相关字节码指令

iconst:将一个(-1~5的int型常量)常量加载到操作数栈(当int取值-1~5采用iconst指令,取值-128~127采用bipush指令,取值-32768~32767采用sipush指令,取值-2147483648~2147483647采用 ldc 指令。)
iload:从局部变量表中加载int型的数据到操作数栈中
istore:将一个int型数据从操作数栈存储到局部变量表
iinc:局部变量自增指令

i++
    public void test1() {
        int i = 0;
        i++;
    }
    
    0 iconst_0
    1 istore_1
    2 iinc 1 by 1       局部变量表中i自增
    5 return
++i
    public void test2() {
        int i = 0;
        ++i;
    }
    
    0 iconst_0
    1 istore_1
    2 iinc 1 by 1       局部变量表中i自增
    5 return
i = i++
    public void test3() {
        int i = 0;
        i = i++;
    }
    
    0 iconst_0
    1 istore_1
    2 iload_1           将i压入操作数栈
    3 iinc 1 by 1       局部变量表中i自增
    6 istore_1          将操作数栈中的i赋值到局部变量表(未自增前的值)    
    7 return
i = ++i
    public void test4() {
        int i = 0;
        i = ++i;
    }
    
    0 iconst_0
    1 istore_1
    2 iinc 1 by 1       局部变量表中i自增
    5 iload_1           将i压入操作数栈(已自增的值)
    6 istore_1          将操作数栈中的i赋值到局部变量表
    7 return

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69358.html

相关文章

  • Python爬虫利器二之Beautiful Soup的用法

    摘要:官方解释如下提供一些简单的式的函数用来处理导航搜索修改分析树等功能。废话不多说,我们来试一下吧安装目前已经停止开发,推荐在现在的项目中使用,不过它已经被移植到了,也就是说导入时我们需要。 上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Be...

    cjie 评论0 收藏0
  • ES6-前世今生(0)

    摘要:更新了个版本,最新正式版是语言的下一代标准,早已在年月正式发布。基本不支持移动端浏览器对的支持情况版起便可以支持的新特性。比较通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有着怎样的关系? 1996 年 11 月,Netscape 创造了javascript并将其提交给了标准化组织 ECMA,次年,ECMA 发布 262 号标准文件(ECMA-...

    LeviDing 评论0 收藏0
  • 前端开发——让算法"动"起来

    摘要:函数和我们之前介绍的冒泡排序是一样的,只不过这里有一句这句是核心,一看是乍看是不是很奇怪,为什么要然后再。而且细心的会发现之前我们看到的冒泡排序它只有一层循环。 正文 当然在我们不清楚具体操作细节前我们可以先假设一下,我们能够用什么来实现。按照以前看过的排序动画我将其分为 1.Js操作Dom,再搭配简单的css 2.Canvas动画 之后在查资料的时候发现还有人用d3这个库来完成。...

    233jl 评论0 收藏0
  • 前端开发——让算法"动"起来

    摘要:函数和我们之前介绍的冒泡排序是一样的,只不过这里有一句这句是核心,一看是乍看是不是很奇怪,为什么要然后再。而且细心的会发现之前我们看到的冒泡排序它只有一层循环。 正文 当然在我们不清楚具体操作细节前我们可以先假设一下,我们能够用什么来实现。按照以前看过的排序动画我将其分为 1.Js操作Dom,再搭配简单的css 2.Canvas动画 之后在查资料的时候发现还有人用d3这个库来完成。...

    Tangpj 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<