類何時被java類裝載器裝入系統

類何時被java類裝載器裝入系統

(1) 當使用該類訪問它的靜態成員變量或使用該類調用其靜態方法時,這個時候,儘管沒有創建該類的對象,但該類還是被裝入系統了。

(2) 當使用new關鍵字,創建該類的對象時,該類也將被裝入系統。

 

而靜態初始化塊,只在類被java類裝載器第一次裝入系統時才被調用,且在整個過程中只調用這一次。

下面例子說明了這一點:

public class ClassGrade {

	public static void main(String[] args) {
		//訪問Student類的靜態成員變量sid,類被第一裝入系統,靜態初始化塊被調用
		Student.sid = 25; 
		System.out.println(Student.sid);
		
		//用new關鍵字創建Student對象s,類被第二次裝入系統,由於是第二次裝入系統,
		//所以靜態代碼塊不會被調用(靜態代碼塊只會在系統裝入第一次被調用)
		Student s = new Student();
		System.out.println(s.toString());
	}

}

class Student {
	private String name = "William";
	private int age = 22;
	static int sid;
	
	static {
		System.out.println("I am a student ...");
	}
	
	public String toString(){
		return this.name + "," + this.age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

 

運行上述代碼能很清晰的瞭解結果。

 

 

 

 

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章