java類加載過程面試題 java里有多少個(gè)類加載器?
java里有多少個(gè)類加載器?Java類加載器Java類加載器分為兩類,一類是系統(tǒng)的類加載器,一類是自定義類加載器。系統(tǒng)類加載器主要有下面三個(gè)引導(dǎo)類加載器,擴(kuò)展類加載器,系統(tǒng)類加載器(還有線程上下文類加
java里有多少個(gè)類加載器?
Java類加載器
Java類加載器分為兩類,一類是系統(tǒng)的類加載器,一類是自定義類加載器。系統(tǒng)類加載器主要有下面三個(gè)引導(dǎo)類加載器,擴(kuò)展類加載器,系統(tǒng)類加載器(還有線程上下文類加載器等等,但是主要有三個(gè));自定義類加載器通過繼承 java.lang.ClassLoader類的方式實(shí)現(xiàn),這個(gè)并沒有明確規(guī)定多少個(gè)。
功能
Java類加載器是負(fù)責(zé)讀取 Java 字節(jié)代碼,并轉(zhuǎn)換成 java.lang.Class類的一個(gè)實(shí)例。
工作過程
類加載器工作主要有五個(gè)階段:
1.加載:查找需要加載類的字節(jié)碼,并創(chuàng)建實(shí)例對(duì)象
2.驗(yàn)證:對(duì)于字節(jié)信息的檢驗(yàn),防止危害虛擬機(jī)
3.準(zhǔn)備:為類變量分配內(nèi)存,并賦初始化值
4.解析:常量池中的符號(hào)引用替換為直接引用的過程
5.初始化:若該類具有超類,則對(duì)其進(jìn)行初始化