類的加載過程,不求甚解即可(十)

/**
 * jvm加載Class後,先收集static ,進行初始化(就1次)

 *主動引用,纔會初始化

  被動引用,不會初始化

 */
public class LoadDemo01 {
public static void main(String[] args){
System.out.println("=====開始工作=====");
B b=new B();
System.out.println("main,id:"+B.id);
System.out.println("main,age:"+b.age);
//=================Class jvm就初始化一次
B b2=new B();
System.out.println("main,id:"+B.id);
System.out.println("main,age:"+b2.age);
}
}
class B extends A{
public static int id=10;
int age=0;
static {
System.out.println("1我在靜態塊中,age還沒誕生,id:"+id);
id=20;
System.out.println("2我在靜態塊中,age還沒誕生,id:"+id);
}
public B(){
System.out.println(super.xx+":==3開始構造對象=======age:"+age);
age=99;
System.out.println("4構造對象中,id::"+id);
id=30;
}
}
class A{
public int xx=0;
static {
System.out.println("1類加載先從,父類開始");
}
static {
System.out.println("2類加載先從,父類開始");
}
public A(){
xx=11;
System.out.println("對象構造,先從,父類開始");
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章