java中static{}语句块详解
1、当一个类中有多个static{}的时候,按照static{}的定义顺序,从前往后执行;
2、先执行完static{}语句块的内容,才会执行调用语句;
示例二
public class TestStatic{
    static{
        System.out.println(1);
    }
    static {
        System.out.println(2);
    }
    static {
        System.out.println(3);
    }
    public static void main(String args[]){
        System.out.println(5);
    }
    static {
        System.out.println(4);
    }
}
结果:程序会输出1,2,3,4,5
3、如果静态变量在定义的时候就赋给了初值(如 static int X=100),那么赋值操作也是在类加载的时候完成的,并且当一个类中既有static{}又有static变量的时候,同样遵循“先定义先执行”的原则;
示例三
 class Test{
 public static int X=300;
 static{
  System.out.println(X);
  X=200;
  System.out.println(X);
 }
}
public class StaticBlockTest{
 public static void main(String args[]){
  System.out.println(Test.X);
 }
}
结果:程序会依次输出300,200,200,先执行完X=300,再执行static{}语句块。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号