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:說一點其他的:關於new的過程:(1)構造**塊和類的屬性類優先順序相同,誰在前面誰先執行;
(2)靜態只執行一次,在類載入的時候;
`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...