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

i++ 与 ++i

 
阅读更多
public class T4{

	/**
	 * @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:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;
  5:   iload_1
   6:   iinc    1, 1
     9:   invokevirtual   #3; //Method java/io/PrintStream.println:(I)V
   12:  return
  LineNumberTable:
   line 11: 0
   line 14: 2
   line 15: 12


}
 
 0:将常数0压入栈,栈内容:【0】      
1:将栈顶的元素弹出,也就是0,保存到局部变量区索引为为1(也就是变量i)的地方。栈内容:【】
2:获取常量池中索引为2所表示的类变量,也就是System.out。栈元素:【】 
5:将局部变量区索引为1的值(也就是i)压入栈。栈元素:【0】 
 6.将局部变量区索引为1(也就是常量i)的值加一,此时局部变量区索引为1的值(也就是i的值)是1。栈内【0】
9:调用常量池索引为3的方法,也就是System.out.println      
12:返回main方法
 
public class T5{

	/**
	 * @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:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;
   5:   iinc    1, 1
   8:   iload_1
   9:   invokevirtual   #3; //Method java/io/PrintStream.println:(I)V
   12:  return
  LineNumberTable:
   line 11: 0
   line 14: 2
   line 15: 12


}

 

 0:将常数0压入栈,栈内容:【0】      
1:将栈顶的元素弹出,也就是0,保存到局部变量区索引为为1(也就是变量i)的地方。栈内容:【】
2:获取常量池中索引为2所表示的类变量,也就是System.out。栈元素:【】 

5.将局部变量区索引为1(也就是常量i)的值加一,此时局部变量区索引为1的值(也就是i的值)是1。栈内【0】
8:将局部变量区索引为1的值(也就是i)压入栈。栈元素:【0】 
9:调用常量池索引为3的方法,也就是System.out.println      
12:返回main方法

 可以看出

i++ 先赋值在加
++i 先加在赋值

分享到:
评论

相关推荐

    I++ DME2.0

    ### I++ DME2.0:尺寸测量标准与接口协议详解 #### 一、引言 I++ DME2.0(Dimensional Measurement Equipment Interface)是三坐标测量领域中的一个重要标准,它定义了一套用于尺寸测量设备之间的通信协议。本标准...

    浅析PHP中的i++与++i的区分及效率_.docx

    从效率角度来说,i++ 和 ++i 都是 O(1) 的操作,无论是前缀递增还是后缀递增,都不会对性能产生影响。 PHP session 传递方式 在 PHP 中,session 可以通过多种方式来传递,包括 GET 方式、表单隐蔽值方式和文件...

    I++ DME Specification Document

    这是一本关于I++DME规范的详细介绍,里面定义了对象模型、类、操作方法等

    Java中i++与++i的区别和使用

    Java中i++与++i的区别和使用 Java 中的 i++ 和 ++i 是两个常用的操作符,它们都是对变量进行加 1 或减 1 的操作,但是它们的执行顺序和结果却有着很大的区别。 首先,让我们来了解一下 i++ 和 ++i 的定义。i++ 是...

    I++ DME1.7

    ### I++ DME1.7:尺寸测量标准与接口协议详解 #### 一、I++ DME概述 I++ DME (Dimensional Measurement Equipment Interface) 是一个专为三坐标测量机(CMM)和其他尺寸测量设备设计的标准接口协议。该协议旨在提供...

    C# i++and++i

    在C#编程语言中,`i++` 和 `++i` 是两种常见的增量运算符,它们都用于将变量的值增加1。然而,虽然这两者看似相似,但在语义上存在细微差别,尤其是在某些特定上下文中。理解这些差异对于编写高效、清晰的代码至关...

    java中for(int i= 0; i<=10;i=i++)System.out.print(i);为什么无限输出0

    当它作为后缀(如`i++`)出现在表达式中时,首先返回变量的当前值,然后将变量的值增加1。这种行为可以理解为下面两个步骤: 1. **获取当前值**:首先获取变量`i`的当前值。 2. **增加变量值**:然后将变量`i`的值...

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

    ### 关于“++i, i++, --i, i--”的理解与应用 #### 一、基本概念 在C/C++编程语言中,“++i, i++, --i, i--”是一组非常重要的自增自减运算符。这些运算符主要用于在程序中修改变量的值。了解这些运算符的工作原理...

    深入解析C/C++/Java/JS中的i++与++i递增操作

    内容概要:详细讲解了在C、C++、Java、JavaScript等多种编程语言里,前缀递增(++i)与后缀递增(i++)的具体区别及其使用时机。文章指出两者虽然最终都使变量增加了1,但在复合表达式中因为执行顺序的不同会产生...

    测试i++和++i的区别

    使用++i和i++可以使迭代操作变得容易,但是两者到底区别在哪可以从这个程序中得知,使用java语言编写

    【驱动程序】USBCAN-I_I+_II_II+_2A_I-MINI驱动安装.zip

    USBCAN-I/I+ II/II+ 2A I-MINI是一款由周立功公司研发的专业CAN总线接口设备,它通过USB接口与计算机连接,提供对CAN(Controller Area Network)网络的访问。该设备广泛应用于汽车电子、工业自动化、楼宇自动化等...

    C语言中++i与i++的区别.docx

    在C语言中,`++i` 和 `i++` 是两种常见的自增操作符,它们在编程中的作用是增加变量的值。虽然它们看似相似,但在某些特定情况下,两者的行为是有区别的,这也是C语言初学者经常感到困惑的地方。本文将深入探讨这两...

    yang-mall-++i和i++

    ii ++i和i++ ++i和i++ ++i和i++ ++i和i++ ++i和i++

    I+关系网络分析用户指南.docx

    I+关系网络分析用户指南I+3ÍƸå-ƵɑsɫʉɾȳðƧƊ¹ʶǑĪºtˣȎ-Ɵ?ăÜw ̐ĭǺİȨ-±Ǫˊ±Vĸ±Ǽ̝ɜ͋ƒȷǭ̀ÄqĀɎ ȅs̟ʬ`̵/ʓʉɜʬƕZƨTʺ{Ʈǡ

    i ++ && ++ i

    3. 然后,后置自增运算符`i++`执行,但此时的结果并不影响逻辑与运算符的计算。`i`会被再次增加1,变为7,但表达式的值仍然是6,因为后置自增运算符返回的是自增前的值。 4. 最终,整个表达式的值取决于`i++`(即6)...

    如何理解i=i++和i=++i.docx

    如何理解i=i++和i=++i.docx

    ++i和i++d的区别.docx

    i和i ++i和i++的区别

    php中++i 与 i++ 的区别

    3. `++i` 与 `i++` 的比较: 在赋值语句中,两者的主要区别在于赋值发生的时间点。`++i` 会在赋值之前增加 `i`,而 `i++` 则会在赋值之后增加 `i`。这意味着如果你将自增操作符用于赋值给另一个变量,结果会有所...

    前置自增 ++i 与后置自增 i++ 的区别及应用

    前置自增 ++i 与后置自增 i++ 的区别及应用

    i++和++i的区别.md

    你想要知道i++和i--的区别吗?你想了解i++和++i吗,还有你要了解i--和--i吗?都是可以的,关注我不定时发一些基础知识,这样可以更加的巩固你的知识的,以后的bug可以少写一点。

Global site tag (gtag.js) - Google Analytics