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<
}
很上面一样么?很遗憾,结果是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是如何执行的。
这样你将会不在疑惑。