首页 > TAG信息列表 > ILOAD
为什么for循环中的a=a++,a总是0
很早之前遇到了一个非常有意思的题目,突然想起来,如下 a = 0; for(int i = 0; i < 10; i++) { a = a++; } System.out.println(a); //a = ? 按理说,a最后等于10,但是IDE的执行结果是0. 使用javap命令查看字节码命令 javap -c a.class你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
我想大部分都知道 i++ 和 ++i的区别,i++ 就是先拿i来使用,之后再自增加1,而++i则是先自增加1,在拿i来使用,例如对于下面这两个语句,我敢保证大部分人都会做: int i = 1; System.out.println(i++) int i = 1; System.out.println(++1) 答案分别为 1,2。对于这个答案我猜大多数人都能答出来懂得i++和++i
懂得i++和++i 案例 代码1 package org.huangao.other.dome1; import org.junit.Test; public class Dome1 { @Test public void test1() { int j = 0; j = j++; System.out.println(j); } @Test public void test2() { injava学习(12):i++和++i的区别
先上代码: public static void main(String args[]) { int A = 1; int B = 10; int C = 100; int D = 1000; System.out.println(A++); System.out.println(++B); System.out.println(C++ + C++); System.out.println(C); System.out.println(D++ +从零写一个编译器(完结):总结和系列索引
前言 这个系列算作我自己的学习笔记,到现在已经有十三篇了,加上这篇一共十四篇。一步一步的从词法分析到语法分析、语义分析,再到代码生成,准备在这一篇做一个总结收尾和一个这个系列以前文章的索引。 (另外,由于我现在的这个主题不能对markdown的一级标题作目录,所以这个系列文章的目录从 i++ 和 ++i 说起局部变量表和操作数栈
1、先通过一张图片来看看局部变量表和操作数栈之间的操作关系: 2、实例: 0 iconst_1 1 istore_1 2 iload_1 3 iinc 1 by 1 6 istore_1 7 iload_1 8 iinc 1 by 1 11 istore_2 12 iload_1 13 iinc 1 by 1 16 iload_1 17 iload_1 18 iinc 1 by 1 21 imul 22 iadd 23 i