public class Sample{  static int a=1;
  static{ a=2;}
  static {  a=4;}
   public static void main(String[] args){
       a++;
       System.out.println("a="+a);
  }
}

解决方案 »

  1.   

    这涉及到类的加载顺序,
    等类加载完静态快时,a=4,然后在main方法中a++;这时a=5;
    所以输出是5
      

  2.   

    在main函数开始之前,先初始化a=1
                                a=2
                                a=4
    在main函数体内 a++ 之后   a=5
      

  3.   


    public class Sample{ 
      // 第一:在这a=1
      static int a=1;
      // 第二:a=2 
      static{ a=2;} 
      // 第三:a=4 
      static {  a=4;} 
       public static void main(String[] args){ 
           // 第四:a=4,执行之后a=5
           a++; 
           // 第五:a=5 
           System.out.println("a="+a); 
      } 
    }
      

  4.   

    我来提醒LZ结贴的,上面的解释挺详细的了,hoho