java中的一些学习笔记:
先看一段代码:
在java中输入这样一段代码
int m = 0; for(int i = 0 ; i < 100 ; i++){ m = m ++; } System.out.println(m);
是不是很多人认为结果是100!很遗憾,结果为0。
在去C 中看看试试:
int main() { int m = 0; for(int i = 0 ; i < 100 ; i++){ m = m ++; } cout<<c; }
很上面一样么?很遗憾,结果是100.
看来java和C 是不一样的。
在来看下下面的一些例子:
public static void method1(){ int x = 5; System.out.print("x+++1+x++ : "); System.out.println(x++ +1 + x++); //5+1+6 } public static void method2(){ /*** 这里的method2和method3的执行顺序是不一样的。 */ int x = 5; System.out.print("(x++)+x : "); System.out.println((x++)+x); //5+6 } public static void method3(){ int x = 5; System.out.print("x+(++x) : "); System.out.println(x+(++x)); //5+6 } public static void method4(){ int x = 5; System.out.print("x+++1 : "); System.out.println(x++ +1); //5+1 } public static void method5(){ int x = 5; --x; //4 System.out.print("--x : "); System.out.println(x); } public static void method6(){ int x = 5; //-6 System.out.print("~x : "); System.out.println((~x)); } public static void method7(){ int x = 5; int q = 0; q = (++x) +(++x) + (++x); //6+7+8 System.out.print("(++x) + (++x) + (++x) :"); System.out.println(q); } public static void method8(){ int x = 5; int q = 0; q = ++x+x+++1+x++; //6+6+1+7 System.out.print("++x + x + ++1 + x++ :"); System.out.println(q); } public static void method9(){ int x = 5; int q = 0; q = ++x + ++x + x + ++x; //6+7+7+8 System.out.print("++x + ++x + x + ++x :"); System.out.println(q); }
很多人不知道准确的说出结果是多少。
利用javap命令。 javap -c 文件名.可以看到准确的字节码执行顺序。去看看java是如何执行的。
这样你将会不在疑惑。