`

由i=i++想起的

    博客分类:
  • JAVA
阅读更多

这是通过javap反编译出来的内容,再参考jvm spec得到如下资料

 

i=0;

i=i++;的情况

iconst_0         常数装载到操作数栈

istore_1         操作数栈存储到局部变量

iload_1          局部变量装载到操作数栈

iinc   1,1         局部变量递增

istore_1         操作数栈存储到局部变量

 

 

i=0;

i=++i;的情况

iconst_0         常数装载到操作数栈

istore_1         操作数栈存储到局部变量

iinc   1,1         局部变量递增

iload_1          局部变量装载到操作数栈

istore_1         操作数栈存储到局部变量

 

i=0;

i=i+1;的情况

iconst_0         常数装载到操作数栈

istore_1         操作数栈存储到局部变量

iinc   1,1         局部变量递增

 

i=0;

i+=1;的情况

iconst_0         常数装载到操作数栈

istore_1         操作数栈存储到局部变量

iinc   1,1         局部变量递增

 

 

这里的_1表示该方法里的第几个局部变量,而且奇怪的是从第4个变量开始就没有"_"字符了

 

javap用法 javap  -c  A>A.bytecode

A表示A.class文件

分享到:
评论

相关推荐

    石子合并问题 用动态规划方法

    sum += a[p]; } f[i][j] = sum + max; } } max = f[1][n]; // 最终答案 for (i = 1; i <= n; i++) { if (max [i][n]) { max = f[i][n]; } } cout 最大得分为" ; system("PAUSE"); return 0; } `...

    asp.net中显示1至20相同数字相乘的结果,若值比50小就不显示

    老师布置作业给Insus.NET做,题目如标题。 感兴趣的网友也可以练习练习。现在Insus.NET的作答如下,...在上面完成之后,Insus.NET马上想起,老师一定不会出这样简单的问题的。会不会老师要Insus.NET实现,积小于50的两

    数据结构严蔚敏版(C语言版)参考答案

    j++) sum+=temp[j]; temp[i]=sum; } f=temp[m]; } return OK; }//fib 分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程(大多数人都会首先想到递归方法),则时间复杂度将高达O(k^...

    数据结构答案 严蔚敏版

    j++) sum+=temp[j]; temp[i]=sum; } f=temp[m]; } return OK; }//fib 分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程(大多数人都会首先想到递归方法),则时间复杂度将高达O(k^...

    严蔚敏的算法设计答案汇总

    j++) sum+=temp[j]; temp[i]=sum; } f=temp[m]; } return OK; }//fib 分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程 (大多数人都会首先想到递归方法),则时间复杂度...

    Java语言求解完美数代码分析

    Java 语言求解完美数... s += farr[i++]; } return s; } } ``` 这个代码实现了 Java 语言求解完美数的功能,包括了分解因式和因式求和的步骤。通过这个代码,我们可以轻松地求解完美数,提高了程序的执行效率。

    动态规划的学后体会和感悟

    **问题描述**:考虑一个由非负整数组成的三角形,从顶点开始,每次可以选择向左下方或右下方移动一步,直到达到底部。目标是找到一条路径,使得这条路径上的数字总和最大。 **传统搜索方法**:首先想到的是使用深度...

    leetcode添加元素使和等于-leetCode:leetcode

    能够想到用递归左右产生子树的方法,但是程序就是写不出来,主要在于对于一个root i, 要实现左右子树的所有情况,左右子树是独立的, 添加两层循环,把左右子树的各种情况放到list中,之后与root相连, for(int i=s;...

    leetcode跳跃-leetcode:leetcode

    优化滑动窗口,就是将一边不是一个一个加,是跳跃者加(容易想起跳跃表),那么就可以将复杂度的常量继续下降. 注意边界的处理. 二分复杂的O(n+m),要求复杂度log,i为数组nums1的分割,分割为nums1[i-1]和nums1[i];...

    Js切换功能的简单方法

    我估计很多正在学习css,js的朋友们也有这样的经历,刚在做这个js切换的时候,我想到了一个好的方法,马上给大家分享一下,希望你们能把它拿走 代码如下: function changeDiv(index) { for(var i=0;i<=5;i++) { ...

    最大覆盖问题算法设计.docx

    当然很容易就可以想到,从后到前进行此操作是最理想的。经过上述的操作之后,我们就能很容易的把问题转化为“找相同连续数字的最大长度”了。这也是非常简单的,只需一次扫描数组就能计算结束了。 代码实现: ```c...

    关于统计数字问题的算法

    这个题目有个最容易想到的n*log10(n)的算法。这是自己写的复杂度为O(n*log10(n))的代码: void statNumber(int n) { int i, t; int count[10] = {0}; for(i = 1; i <= n; i++) { t = i; while(t) { count...

    leetcode答案-LeetCode69:力扣69

    第一React想到的方法是暴力循环求解!从 1 开始依次往后求平方数,当平方数等于 x 时,返回 i ;当平方数大于 x 时,返回 i - 1。 class Solution { public int mySqrt(int x) { for(int i = 0; i <= x; i++) { ...

    2025NOIP普及组.rar

    与这k个数的排列顺序无关,所以我们可以令a[I][I+1](a[I]表示第I个数在原数列中的位置),这个组合生成算法的复杂度大约为C(n,k),下面给出递归搜索算法的框架: Proc Search(dep) Begin for i [dep - 1] + 1 to ...

    山东省临沭县青云镇中学九年级英语全册《Unit 6 I like music that I can dance to》复习学案(

    5. 这张老照片常常使我想起了我的奶奶。The old photo often reminds me of my grandma. 6. 一定要来看这次展览。Make sure to see this exhibition. 以上就是《Unit 6 I like music that I can dance to》的复习...

    蓝桥杯个人笔记(java)

    dp[i] = Math.max(dp[i], dp[j] + 1); } } max = Math.max(max, dp[i]); } return max; } ``` - **解析**:通过维护一个长度为`nums.length`的`dp`数组来存储以每个元素结尾的最长非递减子序列的长度。最后...

    字节跳动2019春招研发部分编程题汇总(python版本)共7题

    i += 1 res %= 99997867 print(res) ``` 3、**雀魂启动!** 这是一个麻将和牌判断问题。定义函数`IShepai`,判断给定的字符串是否能组成麻将牌。首先,检查字符串长度,若为0则返回True(能和牌)。然后,通过...

    leetcode下载-Leetcode:做一点事

    平时自己想到/用到的一些小技巧(来自Biostar大神/国内CDNS大神/知乎大神/简书大神的分享)。自己监督吧,每天上传至少1个Leetcode的题目解答或者其他实用小技巧。 根据使用工具分类 Bash 20190221 # 速度最快&资源...

    leetcode中国-LeetCode:LeetCode题解,Python

    首先想到的是可以利用冒泡的思想,将等于 0 的元素依次挪到最后。这里有个优化,每次都判断下是否有元素交换,如果没有交换则可以直接退出循环。冒泡的时间复杂度为 O(n2)。 class Solution(object): def moveZeroes...

Global site tag (gtag.js) - Google Analytics