[英]when we create an object ,do creation of object and the execution of constructor happens at the same time?
[英]Execution order of constructor and creation of object
嗨,大家好我很困惑java的一個非常常見的概念。 說,“A”是一個類,所以當編譯器到達語句new A(); 會發生兩件事
我正在尋找的唯一一點(困惑)是“執行順序是什么?”
在創建對象之前調用構造函數調用或構造函數之前,會發生對象創建???
當語句A = new A()被調用時;
JVM搜索類A,如果類加載器尚未加載類A,則加載類A.此時調用類A中的static {}塊。
然后分配內存(它是指你的“對象創建”?)
然后調用構造函數。 (哪個構造函數正在運行)
執行過程是 -
在單線程應用程序中,序列將是:1)由類加載器加載的類(這里是所有靜態初始化)2)創建的類實例3)返回並分配對此實例的指針,之后返回控件。
在多線程環境中,事情並非如此簡單,在列表競爭條件下確實很重要。
在邏輯對象創建期間在實例上調用構造函數。
所以內存是保留和填充的,后一部分是由contstructor完成的。
當然,所有這些都是在創建了類實例之后。
如果你的類是一個類的層次結構,它會變得更復雜,因為構造函數在被調用時會調用它的超類構造函數。
好的,得到了答案的人。 謝謝。 將點編譯為:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.