深入理解JVM类加载机制
1、什么是類加載機(jī)制?
JVM把class文件加載到內(nèi)存里面,并對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證、準(zhǔn)備、解析和初始化,最終能夠被形成被JVM可以直接使用的Java類型的過(guò)程。
生命周期包含:加載,驗(yàn)證,準(zhǔn)備,解析,初始化,使用,卸載? 7個(gè)階段
加載:將class 文件加載到運(yùn)行時(shí)數(shù)據(jù)區(qū),方法區(qū)中
驗(yàn)證:進(jìn)行一些安全校驗(yàn),文件校驗(yàn),主要有文件格式校驗(yàn)、元數(shù)據(jù)校驗(yàn)、符號(hào)引用校驗(yàn)
準(zhǔn)備:進(jìn)行變量的內(nèi)存分配
解析:虛擬機(jī)將常量池里的符號(hào)引用替換為直接引用(指針)的過(guò)程
初始化:執(zhí)行類的構(gòu)造器
?
2. 雙親委派模型
如果一個(gè)類加載器收到類加載請(qǐng)求,他首先不會(huì)嘗試自己去加載這個(gè)類,而是把請(qǐng)求委派給父類加載器去完成,最終請(qǐng)求都傳送到頂層啟動(dòng)類加載器中,只有當(dāng)父類加載器反饋?zhàn)约簾o(wú)法完成這個(gè)加載請(qǐng)求,子類加載器才會(huì)嘗試自己去加載。
好處:如果沒(méi)有使用雙親委派模型,由各個(gè)類加載器自己去加載,用戶編寫(xiě)一個(gè)java.lang.Object,就會(huì)出現(xiàn)多個(gè)Object會(huì)造成程序混亂。
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/yumingxing/p/9467068.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的深入理解JVM类加载机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 测试教程网.unittest教程.7.
- 下一篇: Docker删除镜像