眾所周知,.java文件需要經過編譯生成.class文件才能被JVM執行。
其中,JVM是如何加載.class文件,又做了些什么呢?
.class文件通過 加載-》驗證-》准備-》解析 等過程,加載到方法區中,等待代碼的調用,下面講講每個步驟都干了些什么吧
一、加載
將.class文件加載到jvm中。
那么何時加載呢?當類被調用的時候!例如:new A();的時候A被加載到內存中。這里需要注意,並不是每次使用的時候都會加載,只是第一次使用的時候加載進來。
二、驗證
驗證.class文件的合規性。
防止.class文件被篡改,導致文件無法執行
三、准備
為類分配內存,給靜態變量默認初始化賦值
四、解析
將符號引用變為直接引用
將引用變成指針指向。
上述類加載過程在類加載器完成,細節其實很復雜,我們只需要了解核心即可。而類加載器又涉及到雙親委派。自行學習