大家也都知道i++是先使用再自增,++i是先自增再使用,但实际中遇到看似简单的面试题还是会出错,下面是两个面试题:
/***** test.java*******/
public class test {
static {int x=5;}//局部变量,不影响后面的x值
static int x,y;//初始化x=0,y=0
public static void main(String[] args){
System.out.println(x);//这里输出是0,即第二次使用static声明x的时候x被默认赋值为0
x--;
myMethod();
System.out.println(x + y++ +x);//x是1,y是0,结果是2
}
private static void myMethod()
{
y = x++ + ++x;
}
}
/***** test1.java*******/
public class test1 {
public static void main(String[] args){
int j=0;
for(int i=0;i<100;i++)
{ j=j++; // 相当于temp=j;j=j+1;
j=temp
}
System.out.print(j);//j=0 ,反正我是算成100了……
}
}