`
m635674608
  • 浏览: 5041701 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

i++ (二)

 
阅读更多

public class T{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
         int s = 0;
         //String a = s.concat("a");
         s++;
         System.out.println(s);
	}

}
 

public static void main(java.lang.String[]);
  Code:
   Stack=2, Locals=2, Args_size=1
   0:   iconst_0
   1:   istore_1
   2:   iinc    1, 1
   5:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;
   8:   iload_1
   9:   invokevirtual   #3; //Method java/io/PrintStream.println:(I)V
   12:  return


}
这里,我从第0行开始分析(分析中【】表示栈,栈的底端在左边,顶端在右边):   
  
0:将常数0压入栈,栈内容:【0】   
  
1:将栈顶的元素弹出,也就是0,保存到局部变量区索引为为1(也就是变量i)的地方。栈内容:【】     
  
2:将局部变量区索引为1(也就是常量i)的值加一,此时局部变量区索引为1的值(也就是i的值)是1。栈内容:【0】   
   
  
5:获取常量池中索引为2所表示的类变量,也就是System.out。栈元素:【】   
  
8:将局部变量区索引为1的值(也就是i)压入栈。栈元素:【0】   
  
9:调用常量池索引为3的方法,也就是System.out.println   
  
12:返回main方法   
 

 

分享到:
评论

相关推荐

    浅谈c i++与java i++的区别

    在第二次迭代中,i的值为2,然后输出2。因此,输出结果为1和2。 因此,我们可以看到,c语言和java语言在使用i++时存在着明显的区别。c语言中的i++会先返回变量的当前值,然后再对变量进行自增操作,而java语言中的i...

    I++ DME2.0

    #### 二、对象模型 ##### 2.1 解释 I++ DME2.0 的对象模型是整个标准的核心组成部分之一,它定义了用于描述测量任务的数据结构。通过定义这些对象模型,可以确保不同设备之间的数据兼容性和互操作性。 ##### 2.2 ...

    C# i++and++i

    运行这段代码,你会看到 `i++` 在第一行输出原始值 `5`,然后在第二行输出 `6`;而 `++i` 则在两行都输出 `6`,因为它总是先增加再赋值。 在实际开发中,选择使用 `i++` 还是 `++i` 主要取决于你希望何时使用变量的...

    ++i,i++,--i,i--终结

    - 第二次 `i++`:i的值为1,返回1,之后i变为2。 - 第三次 `i++`:i的值为2,返回2,之后i变为3。 因此,`k = 0 + 1 + 2 = 3`。然而,题目中的描述给出了结果 `k = 0`,这同样是因为原文中的计算过程可能存在...

    I++ DME1.7

    #### 二、I++ DME的目的与意义 I++ DME的目标是实现软件包中I++ DME和I++ DMS接口的全面覆盖,并尽可能快地实施这些接口。通过这种方式,可以促进不同制造商之间的测量设备与软件系统的互操作性,降低集成成本,...

    为什么(i++)不能做左值,而(++i)可以

    第二个函数尝试返回后缀递增的值的引用,这是不允许的,因为后缀递增的结果是右值。 在C/C++编程中,你必须注意区分左值和右值。只有理解了它们之间的区别,才能避免在代码中出现错误,并且能够写出更加高效和可读...

    从volatile说到i++的线程安全问题.docx

    二、i++操作的线程安全问题 i++操作是一个典型的非原子操作,它包括三个步骤:读取、修改、写回。在多线程环境下,如果多个线程同时执行i++操作,可能会导致结果不正确。 例如,使用一个线程i++,另一个线程i–and...

    I++房地产专业搜索引擎商业计划书-精品创业计划书模板.pdf

    二、现有房地产交易形式: 1. 新房买卖:新房市场依然是房地产交易的主要形式之一,尤其在城镇化进程中,新房的需求量持续增加。 2. 二手房买卖:在一些发达城市,二手房市场已经开始兴起,成为住房供应的重要组成...

    详解java面试题中的i++和++i

    x++在执行后面的加操作之前是不会加1的,就跟 return i++ 在return之后才会进行i++,所以第一个加数为4,但是这里需要注意的是在执行++x之前,递增已经对实际的x生效了,即x已经为5了,所以第二个加数为 ++i 为6,...

    基础化工行业:I+G行业供需格局向好,产品发展有望持续-0410-国金证券-18页.pdf

    梅花生物则凭借其氨基酸、调味品以及其他综合业务的基础,受益于I+G产品价格的提升,其作为第二大味精供应商的地位也为其提供了稳定的产品生产和盈利增长的基础。 需要注意的是,原材料及能源价格的波动风险以及...

    Java实现杨辉三角

    Java实现杨辉三角是一种利用编程语言来展示数学理论的方式,杨辉三角,又称帕斯卡三角,是一个在数学中广泛使用的二维数组结构。这个三角形的每一行都是一个数列,其中每个数字是上一行相邻两个数字之和,且边界数字...

    Java经典算法20题

    ### 二、寻找101-200之间的素数 **题目描述**: 找出101到200之间的所有素数,并统计素数的数量。 **程序分析**: 判断一个数是否为素数的方法是从2到该数的平方根范围内进行遍历,看是否有能够整除该数的其他数字...

    冒泡排序(C++源代码)

    - 第二层循环用于比较相邻的两个元素,并在必要时交换它们的位置。 - `if(a[i]>a[i+1])` 检查当前元素是否比下一个元素大,如果是,则交换位置。 6. **输出结果**: - `for(i=0;i;i++) cout[i];` 循环输出排序后...

    两个二维数组相加,用成员函数重载运算符“+”和“-”

    ### 两个二维数组相加与相减:使用成员函数重载运算符“+”和“-” 在C++中,运算符重载是一种强大的特性,它允许程序员改变内置运算符的行为,使其适用于自定义类型(如类或结构)。本文将详细介绍如何通过成员...

    java基础,笔记03

    i i + i + i 3 i + ++i + i ; i i + ++i + i ; 5 i + ++i + ++i ; i i + ++i + ++i ; 6 i i +++ i; i i ++ + i; 3 i i i; i i i; 1 一个等号是赋值运算 整个表达式的值就是左边变量被赋的值 两个等号是比较运算 ...

    compat-libstdc++-33-3.2.3-72.el7.i686.zip

    `compat-libstdc++-33`是为了确保Oracle 11gR2可以与系统上的其他现代库兼容,特别是对于那些编译时链接了旧版GCC(GNU Compiler Collection)库的二进制文件。GCC 3.2.3是这个库对应的老版本,它包含了某些Oracle...

    二维非线性系统的控制(自动控制)

    对一个二维的非线性系统进行控制,实现系统稳定性。利用matlab编程来进行系统控制,是自动控制原理的基础课程。clc clear all kp=50;kd=0.001;ki=0.005; dt=0.001; n=5001; r=100; xdot(1)=0; x(1)=0;e(1)=0; de(1)=...

    jquery+ajax+jsp+servlet实现二级级联菜单

    ### 使用jQuery、Ajax、JSP与Servlet实现二级级联菜单 #### 一、项目背景与技术栈概述 本文档将详细介绍如何使用jQuery、Ajax、JSP与Servlet来实现一个简单的二级级联菜单功能。该功能常见于许多Web应用程序中,如...

    java代码-i=3; a=i++; i+=a; \u6c42i=

    第二行,`a = i++`,这是个一元操作符`++`的用法。`i++`意味着先使用当前`i`的值(3),然后增加`i`的值。因此,`a`被赋值为3,而`i`则变成了4。 第三行,`i += a`,这个操作符`+=`是加法赋值运算符。它意味着`i`的...

    DS918+6.21二合一硬盘镜像(完美运行,主板必须改为UEFI).7z

    今天我挨个测试了一下个,最终还是觉得这个版本不错,第一系统反应快,第二最牛掰得就是稳定,稳定运行了2年了,以为其它系统会很好,没想到折腾了半天还是这个版本好用!于是又折腾了回去。温馨提示,这个是二合一...

Global site tag (gtag.js) - Google Analytics