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