關於靜態代碼塊

靜態代碼塊,在建立實例的時候就會執行. 首先開來看一個實例:java

1.誤區測試

class MyClass1 {
	static {//靜態塊
		System.out.println("static block ");
	}
}
public class Main {
	Class[] classArray = {
			MyClass1.class//這樣引用該類,必然須要將該類加載到虛擬機中
	};
	public static void main(String[] args){
		System.out.println("hello word");
	}
}

這裏沒有打印靜態代碼塊,由於類沒有被實例化code

2.實例化以後虛擬機

class MyClass1 {
	static {//靜態塊
		System.out.println("static block ");
	}
}
public class Main {
	Class[] classArray = {
			MyClass1.class//這樣引用該類,必然須要將該類加載到虛擬機中
	};
	public static void main(String[] args){
		System.out.println("hello word");
		MyClass1 class1=new MyClass1();
	}

}

3.繼續測試class

class MyClass1 {
	static {//靜態塊
		System.out.println("static block ");
	}
}
public class Main {
	static {//靜態塊
		System.out.println("static block2 ");
	}
	Class[] classArray = {
			MyClass1.class//這樣引用該類,必然須要將該類加載到虛擬機中
	};
	public static void main(String[] args){
		System.out.println("hello word");
		MyClass1 class1=new MyClass1();
	}

}
相關文章
相關標籤/搜索