자바 JVM-클래스 로드 정적 초기 화 블록 호출 순서

1085 단어 자바
테스트 클래스 로 딩 의 전 과정
public class Have {
static {
    System.out.println("  Have");//   Have   main  
}
public static void main(String[] args) throws Exception {
    System.out.println("main  "); //  main  
    A a=new A(); //      ,      
    System.out.println(A.width);
    A a2=new A(); //          ,        ,            
    System.out.println(A.common); //        ,        ,         

    Class.forName("cn.sxt.in.A"); //     ,        

    A[] a=new A[10];  //      ,      

    System.out.println(B.common); //         ,          
    System.out.println(B.width); //         ,        
}

}

class A extends A_father{
    public static int width=100;
    public static final int common=10;
    //     ,          static     
    static {

    System.out.println("      ");
    width=300;
}
public A(){
    System.out.println("AAA");
    }

}
class A_father{
    static {
        System.out.println("     A   ");
    }
}
class B extends A{
    static {
        System.out.println("     B");
    }
}

좋은 웹페이지 즐겨찾기