免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Javaweb-類加載器-類加載器的了解入門-創(chuàng)新互聯(lián)

Javaweb-類加載器-類加載器的了解入門

創(chuàng)新互聯(lián)是專業(yè)的華寧網(wǎng)站建設公司,華寧接單;提供成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行華寧網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

前面的動態(tài)代理學完了,以后在學習Spring的時候會用到這些動態(tài)代理的知識和原理,像目標對象,增強這兩個術語,會經常聽到。學習動態(tài)代理,就是學習JDK中反射包下的一個Proxy類,具體來說,我們只是學習newProxyInstance(ClassLoader, interfaces, hander)這個方法。這篇開始來學習下,加載器,我們在學習獲取動態(tài)代理,第一個要準備的參數(shù)就是,類加載器,通過這篇的學習,稍微對類加載器有入門的了解。

來源:凱哥Java(kaigejava)

什么是類加載器(作用)

就是把計算機本地磁盤上的.class文件加載進JVM內存中方法區(qū),變成Class對象,實現(xiàn)這個過程的對象就是類加載器,這個類加載器本身也是一個類。

如何得到類加載器

前面我們學習動態(tài)代理的時候,是通過當前類來獲取類加載器,就是下面這行代碼。

ClassLoader?loader?=?this.getClass().getClassLoader();

這個getClassLoader()方法是在Class類中定義的方法。

類加載器的分類

類加載器有三個分類,以下三類分工明確,負責不同的類加載。

引導類加載器

這個分類主要是類庫加載,例如jre下面的lib文件夾中的rt.jar中類加載進JVM內存。

擴展類加載器

這部分就是把擴展的類庫加載到內存,例如jre下面的ext文件夾下的全部文件,ext就是英文擴展單詞的前綴縮寫。

系統(tǒng)類加載器

這分類就是加載一些應用下的類,例如我們寫一個web項目,我們使用到很多其他第三方的jar包,這些類就是系統(tǒng)類加載器來完成加載。還有我們自己寫的代碼文件,也是系統(tǒng)類加載器完成這操作。

這三個分類的關系是,系統(tǒng)類加載器的上層是擴展類加載器,擴展類加載器的上層是引導類加載器,引導類加載器是老大,沒有上層。

Javaweb-類加載器-類加載器的了解入門

類加載器的委托機制

由于上面三個類加載器分類的關系,產生了一個概念,叫類加載器的委托機制。先來看看下面這個過程,然后解釋什么是委托機制。

一開始,我們在代碼中寫這行代碼new A(); 由于A類可能是JDK自帶,也可能是程序員自己寫的,這個類在加載進內存需要經歷下面這個過程。

1)?系統(tǒng)類加載器發(fā)現(xiàn)自己要加載A類,因為這是在應用下的代碼,理應系統(tǒng)類加載器去處理加載。

2)?系統(tǒng)類加載器,根本不看這個A類是不是在自己管轄范圍,直接通知擴展類加載器,想讓擴展加載器去加載A類。

3)?擴展加載類也不管,直接通知引導加載類,想讓引導加載類去執(zhí)行加載。

4)?引導加載類發(fā)現(xiàn)這個A類是rt.jar中的類,然后就加載到JVM內存的方法區(qū),把這個Class對象返回給了擴展,然后擴展把這個對象Class對象返回給系統(tǒng)加載類,加載過程結束。

5)?如果引導加載器發(fā)現(xiàn)A類不是自己管轄范圍,返回null給擴展。

6)?擴展類加載器發(fā)現(xiàn)上層返回null, 只好擴展去自己管轄范圍查找,查找到了,就加載進入內存,返回對應class對象給系統(tǒng)加載器,加載過程結束。

7)?如果擴展器沒有找到A類,就返回null給系統(tǒng)類加載器。

8)?系統(tǒng)類加載器發(fā)現(xiàn)上層返回null,只好去自己管轄范圍查找A類,找到了就加載進JVM內存,返回class對象,加載過程結束。

9)?如果系統(tǒng)類也找不到這個A類,拋出異常,ClassNotFoundException

這個過程就是委托機制,所有加載任務都優(yōu)先交給自己的上層去完成,上層完成不了然后才自己處理,這樣就包裝了類加載的安全,不會同時存在,三個類型加載器同時加載一個類的情況。

在實際的類解析過程中,類的加載還是要看線程,每一個線程就有自己的類加載器。所以本篇的類加載器的基礎,有助于我們以后學習多線程并發(fā)和JVM這塊的知識點。

l聯(lián)系凱哥:凱哥Java(kaigejava)或凱哥個人博客:www.kaigejava.com(凱哥個人博客可以發(fā)即時消息給凱哥哦~)

Tomcat中的類加載器

Javaweb-類加載器-類加載器的了解入門

簡單來了解下Tomcat中的類加載器,在Tomcat中有兩種類加載器。

1)?服務器類加載器,負責加載tomcat下${CATALINA_HOME}\lib下的類,也就是tomcat安裝目錄下lib文件夾中的類。

2)?應用類加載器,這個主要加載當前web項目下\WEB-INF\lib?和\WEB-INF\classes,?就是我們程序員代碼編譯之后文件在\WEB-INF\classes,一些第三方jar包在\WEB-INF\lib。

說一下這種類加載器和前面知道的三個類加載器的區(qū)別和關系。在Tomcat下兩種類加載器都排下上面系統(tǒng)類加載器的下面,這兩個的上層都是系統(tǒng)類加載器。在Tomcat中的兩種類加載器有一個共同特性:先自己動手,然后去委托。通過前面的委托機制的學習,應該知道這句話的含義。Tomcat中兩種類加載器會自己一開始就去自己管轄范圍查找和加載類,如果沒有找到才去委托給系統(tǒng)類加載器。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。

網(wǎng)站題目:Javaweb-類加載器-類加載器的了解入門-創(chuàng)新互聯(lián)
轉載注明:http://m.newbst.com/article26/hpijg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google品牌網(wǎng)站制作響應式網(wǎng)站自適應網(wǎng)站外貿建站網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站