关于++在前与在后的问题。 麻烦高手详细解释一下++在前与++在后的区别,算法。我是菜鸟理解半天也没有搞懂。非常感谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在 C++ 中, 后缀运算优先级高于前缀运算. X++ > ++X.Java 中不知道是不? 没有运算符重装,没有办法测试. 呵,还不迟,举个例子吧:public static void main(String[] args){i=0;i=i++System.out.println(i);}javap -c classname //使用javap对类进行分解i++的情况 ++i的情况iconst_0 iconst_0istore_1 istore_1iload_1 iinc 1,1iinc 1,1 iload_1istore_1 istore_1JVM里面有两个存储区,一个是暂存区(是一个堆栈),另一个是变量区(iinc 1,1).语句istore_1是将堆栈中的值弹出存入相应的变量 区(赋值)语句iload_1是将变量区中的值暂存在堆栈中。因为i=i++;是先将i的值(0)存入堆栈,然后对变量区中的i自加1,这时i的值的确是1,但是随后的istore_1又将堆栈的值(0)弹出赋给变量区的i ,所以最后i=0;又因为i=++i;是先对变量区中的i自加1,然后再将变量区中i的值(1)存入堆栈,虽然最后执行了istore_1,但也只是将堆栈中的值(1)弹出赋给变量区的i,所以i=++i的结果是i=1 怎么按行读取一个大字符串 equals List< List<String> 等数据结构? 如何提交到异域网,并且无提示,不刷新,谢谢 java中的疑惑-组件不显示的问题! 高分请教中文编码的问题! 谁能告诉我怎么将普通格式的文本文件转换成UNicode格式的文本? 打印高手请进:如何得到当前正在打印的页数 一些小问题 mysql的jdbc乱码 怎么使用java生成一个包含table表格的图片,table里面的文字动态传入,要居中对齐,求思路,求方法 数据库sql连接问题,bangbang 我啊 混淆器RetroGuard问题
public static void main(String[] args){
i=0;
i=i++
System.out.println(i);
}javap -c classname //使用javap对类进行分解i++的情况 ++i的情况
iconst_0 iconst_0
istore_1 istore_1
iload_1 iinc 1,1
iinc 1,1 iload_1
istore_1 istore_1JVM里面有两个存储区,一个是暂存区(是一个堆栈),另一个是变量区(iinc 1,1).
语句istore_1是将堆栈中的值弹出存入相应的变量 区(赋值)
语句iload_1是将变量区中的值暂存在堆栈中。
因为i=i++;是先将i的值(0)存入堆栈,然后对变量区中的i自加1,这时i的值的确是1,但是随后的istore_1又将堆栈的值(0)弹出赋给变量区的i ,所以最后i=0;
又因为i=++i;是先对变量区中的i自加1,然后再将变量区中i的值(1)存入堆栈,虽然最后执行了istore_1,但也只是将堆栈中的值(1)弹出赋给变量区的i,所以i=++i的结果是i=1