首先會有JVM去內(nèi)存中的 方法區(qū) 查找該類的class信息,如果有直接拿來用,如果沒有,去磁盤中查找.class文件,并由類加載器(ClassLoader)進行加載到方法區(qū)。
加載時遇到靜態(tài)成員變量,加載到方法區(qū)的靜態(tài)區(qū)域,非靜態(tài)成員變量加載到非靜態(tài)區(qū)域。然后對靜態(tài)變量進行默認初始化和顯式初始化。靜態(tài)代碼塊會在加載時執(zhí)行,非靜態(tài)代碼塊在創(chuàng)建實例時執(zhí)行。先加載父類,再加載子類。
靜態(tài)方法和非靜態(tài)方法在調(diào)用時才會執(zhí)行。
new一個對象時,在堆內(nèi)存中開辟一塊空間,給開辟的空間分配一個地址,把非靜態(tài)成員變量加載到開辟的空間下,進行默認初始化。
調(diào)用構(gòu)造函數(shù),入棧執(zhí)行,先執(zhí)行隱式三步:調(diào)用super函數(shù),對非靜態(tài)成員顯式初始化,執(zhí)行構(gòu)造代碼塊。再執(zhí)行構(gòu)造函數(shù)的代碼。
構(gòu)造函數(shù)彈棧,把空間分配的地址賦給引用對象。
創(chuàng)建一個對象的過程(new)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡單分配策略的問題地址空間不隔離內(nèi)存使用效率低程序運行的地址不確定 關于...
- 整理來自互聯(lián)網(wǎng) 1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工具...
- 一:java概述: 1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)...
- 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...