public class MyClass

private static int x = getValue(); 
private static int y = 5; 

private static int getValue() 
{  
return y; 
}
 
public static void main(String args[]) 

System.out.println(x); 
}  
}
谁能告诉我他的执行顺序

解决方案 »

  1.   

    都是static ,从上到下的顺序你调用x,x = getValue();所以会调用private static int getValue() 
    {  
    return y; 
    }但此时private static int y = 5;  还没有加载
    int 默认为0所以结果会打印0===================如果你这样写
    private static int y = 5;  
    private static int x = getValue(); 把y移上去,那么就会打印y的值了,即5
      

  2.   

    首先程序进入MyClass类,然后在里面找main函数。
    找到main函数继续执行System.out.println(x);
      

  3.   

    先执行main然后静态模块然后变量定义
      

  4.   


    4.public class MyClass
    {  
    1.private static int x = getValue();  
    3.private static int y = 5;  2.private static int getValue()  
    {   
    return y;  
    }
     
    5.public static void main(String args[])  
    {  
    System.out.println(x);  
    }   
    }
      

  5.   

    具体的可以研究下这个贴子
    http://topic.csdn.net/u/20081117/20/3c517dfe-b1b5-4288-9e13-b342663a21dd.html
      

  6.   

    看程序,应该先从main方法开始,先执行System.out.println(x);  再x = getValue();  private static int getValue()  
    {   
    return y;  
    }
    y = 5