假如你寫了一段代碼:Object o=new Object();運(yùn)行了起來曙博!
1.首先JVM會啟動怜瞒,你的代碼會編譯成一個.class文件,然后被類加載器加載進(jìn)jvm的內(nèi)存中,你的類Object加載到方法區(qū)中逝她,創(chuàng)建了Object類的class對象到堆中睬捶,注意這個不是new出來的對象,而是類的類型對象擒贸,每個類只有一個class對象,作為方法區(qū)類的數(shù)據(jù)結(jié)構(gòu)的接口介劫。
2.jvm創(chuàng)建對象前,會先檢查類是否加載险绘,尋找類對應(yīng)的class對象誉碴,若加載好宦棺,則為你的對象分配內(nèi)存黔帕,初始化也就是代碼:new Object()。
上面的流程就是你自己寫好的代碼扔給jvm去跑呐芥,跑完就over了奋岁,jvm關(guān)閉思瘟,你的程序也停止了
v2-4face8109e0d52ef5894c41c69e4ec6b_b.jpg