類的載入過程:
1、啟動jvm,引導程式中需要使用的
class
檔案。2、在載入class檔案的時候,所有的靜態內容(靜態成員變數,靜態成員函式,靜態**塊)都要載入到方法區的靜態區中。
3、當類中的所有靜態載入完成之後,開始給類中的所有靜態成員變數預設初始化。
4、類中的所有靜態成員變數預設初始化完成之後,開始給這些靜態成員變數顯示賦值。
5、所有靜態成員變數顯示賦值結束之後,開始執行類中的靜態**塊。
6、當所有的靜態**塊執行完成,代表當前這個class檔案才徹底被載入結束。
物件的建立過程:
1、使用new關鍵字建立物件,在堆給物件分配記憶體空間。
2、給物件所屬類中的所有非靜態成員變數分配空間並進行預設的初始化。
3、執行和new物件時傳遞引數一致的建構函式。
4、執行建構函式的的過程中有隱式的三步:
4.1、執行
super()
語句,找父類的空引數建構函式
4.2、給非靜態成員變數進行顯示賦值。
4.3、執行構造**塊
4.4、建構函式中的自己寫的**執行。
5、建構函式執行完成,物件建立結束。
類載入過程 物件的建立過程
1 jvm發現要使用乙個類,首先要到方法區中找 如果找到了,就直接使用,如果沒有找到,才會去找這個類的class檔案,然後載入 在找class檔案時,是根據classpath配置的位址去找 如果沒有配置,就在當前目錄找 2 在硬碟上找到class檔案後,就開始載入這個class,根據書寫順序,先後將...
類的載入過程
類的載入過程 1 在建立物件時,會先判斷物件所屬的型別 類 在記憶體中是否存在,如果存在則直接使用 如果不存在,則把類載入到記憶體中的方法區下 2 在把類 class 載入到方法區時,分兩種情況 2.1 從.class檔案的上面向下依次載入內容 2.2 靜態的內容載入到方法區的靜態區域下 非靜態內容...
類的載入過程
person person new person 為例進行說明。1 因為new用到了person.class,所以會先找到person.class檔案,並載入到記憶體中 2 執行該類中的static 塊,如果有的話,給person.class類進行初始化 3 在堆記憶體中開闢空間分配記憶體位址 4 ...