面試題1:
內容:
public static void main(String args[]){
System.out.println("Hello");
int i=1;
i=i++; // 1
int j=i++; //2
int k=i+ ++i * i++; //3
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("K="+k);
}
}
輸出結果:
Hello
i=4
j=1
K=11
結果分析:
代碼中1位置的 i = i++ 代碼相當於下面的代碼
int temp = i;
i = i+1;
i = temp;
所有此時的i的值爲1;
下一行代碼 int j = i ++ ;i先複製給j 然後自增。所以此時j =1 ;i= 2;
k= i+ ++i * i++; k = 2 + (2+1)* 3 = 11