java java類的載入過程

2021-07-24 16:26:42 字數 957 閱讀 3813

class other

other()

}class superclass

superclass()

other o=new other();

}class newload extends superclass

other o=new other();

newload()

public static void main(string args)

}

執行結果:

父—靜態**塊

子—靜態**塊

main方法

父—構造**塊

other–靜態**塊

other–建構函式0

父—-建構函式

other–建構函式1

子—構造**塊

子—-建構函式

ps:

(1)構造**塊和類的屬性類優先順序相同,誰在前面誰先執行;

(2)靜態只執行一次,在類載入的時候;

說一點其他的:關於new的過程:

`person p=new person("zhangsan",20);`
該句話都做了什麼事情?

1,因為new用到了person.class,所以會先找到person.class檔案並載入到記憶體中;

2,執行該類中的static**塊,如果有的話,給person.class類進行初始化;

3,在堆記憶體中開闢空間,分配記憶體位址;

4,在堆記憶體中建立物件的持有屬性,並進行預設初始化;

5,對屬性進行顯式初始化;

6,對物件進行構造**塊初始化;

7,對物件進行與之對應的建構函式初始化;

8,將記憶體空間位址賦給棧記憶體中的p變數。

類的載入過程

類的載入過程 1 在建立物件時,會先判斷物件所屬的型別 類 在記憶體中是否存在,如果存在則直接使用 如果不存在,則把類載入到記憶體中的方法區下 2 在把類 class 載入到方法區時,分兩種情況 2.1 從.class檔案的上面向下依次載入內容 2.2 靜態的內容載入到方法區的靜態區域下 非靜態內容...

類的載入過程

person person new person 為例進行說明。1 因為new用到了person.class,所以會先找到person.class檔案,並載入到記憶體中 2 執行該類中的static 塊,如果有的話,給person.class類進行初始化 3 在堆記憶體中開闢空間分配記憶體位址 4 ...

類的載入過程

類的載入過程,可分為三個階段,載入 連線 初始化。初始化,為類的靜態變數賦予預設的初始值 jvm規範規定了以下六種主動使用類的場景 被動呼叫,不會導致類的載入和初始化 先看乙個面試題 public class singleton public static singleton getinstance...