導航:首頁 > 編程語言 > java類載入器種類

java類載入器種類

發布時間:2022-11-13 06:51:18

Ⅰ 北大青鳥java培訓:Tomcat的類載入器架構

主流的Web伺服器(也就是Web容器),如Tomcat、Jetty、WebLogic、WebSphere或其他筆者沒有列舉的伺服器,都實現了自己定義的類載入器(一般都不止一個)。
因為一個功能健全的Web容器,要解決如下幾個問題:1)部署在同一個Web容器上的兩個Web應用程序所使用的類庫可以實現相互隔離。
這是最基本的需求,兩個不同的應用程序可能會依賴同一個第三方類庫的不同版本,不能要求一個類庫在一個伺服器中只有一份,伺服器應當保證兩個應用程序的類庫可以互相獨立使用。
2)部署在同一個Web容器上的兩個Web應用程序所使用的類庫可以互相共享。
這個需求也很常見,例如,用戶可能有10個使用Spring組織的應用程序部署在同一台伺服器上,如果把10份Spring分別存放在各個應用程序的隔離目錄中,將會是很大的資源浪費——這主要倒不是浪費磁碟空間的問題,而是指類庫在使用時都要被載入到Web容器的內存,如果類庫不能共享,虛擬機的方法區就會很容易出現過度膨脹的風險。
3)Web容器需要盡可能地保證自身的安全不受部署的Web應用程序影響。
目前,有許多主流的Web容器自身也是使用語言來實現的。
因此,Web容器本身也有類庫依賴的問題,一般來說,基於安全考慮,容器所使用的類庫應該與應用程序的類庫互相獨立。
4)支持JSP應用的Web容器,大多數都需要支持HotSwap功能。
我們知道,JSP文件最終要編譯成Class才能由虛擬機執行,但JSP文件由於其純文本存儲的特性,運行時修改的概率遠遠大於第三方類庫或程序自身的Class文件。
而且ASP、PHP和JSP這些網頁應用也把修改後無須重啟作為一個很大的「優勢」來看待,因此「主流」的Web容器都會支持JSP生成類的熱替換,當然也有「非主流」的,如運行在生產模式(ProctionMode)下的WebLogic伺服器默認就不會處理JSP文件的變化。
由於存在上述問題,在部署Web應用時,單獨的一個ClassPath就無法滿足需求了,所以各種Web容都「不約而同」地提供了好幾個ClassPath路徑供用戶存放第三方類庫,這些路徑一般都以「lib」或「classes」命名。
被放置到不同路徑中的類庫,江西電腦培訓http://www.kmbdqn.cn/認為具備不同的訪問范圍和服務對象,通常,每一個目錄都會有一個相應的自定義類載入器去載入放置在裡面的類庫。
現在,就以Tomcat容器為例,看一看Tomcat具體是如何規劃用戶類庫結構和類載入器的。

Ⅱ java的類載入器有哪些,它們的順序是什麼

類載入器有四種,分別是 bootstrapClassLoader (主要載入java核心api) , ExtClassLoaders是擴展類的類載入器,AppClassLoader 程序類載入器,還有一個是用戶繼承ClassLoader重寫的類載入器。

Ⅲ Java有哪些類載入器

鳳求凰鳳求凰王安石詩作王安石詩作我國最早的詩體是四言的「詩經體」,接著出現了以屈原《離騷》為代表的「楚辭體」(也叫「騷體詩」),後者用連詞「之」和語氣助詞「兮」將句式變長,如「帝高陽之苗裔兮」(《離騷》)、「操吳戈兮披犀甲」(《國殤》),這為後來的五、七言詩提供了先例。因此,《詩經》與《楚辭》成為中國詩歌之源。至漢代,出現了專門負責搜集各種詩歌、民歌的機構「樂府」,它所搜集的最有影響的是民間詩歌,這就是我們今天還能看到的「漢樂府民歌」。它最大的特點是現實性強,通俗明快,形式上以五言為主。如教材八年級(上)中的《長歌行》及高中課本中的《飲馬長城窟行》《十五從軍征》等,即是「正宗」的「漢樂府」。漢樂府民歌的內容體式影響了當時及後世的文人詩歌創作,至東漢末年,代表文人五言詩成熟的《古詩十九首》出現,其中吸收了樂府民歌的許多特點,這對古詩體式的發展起到了推動作用。尤其是在魏晉南北朝及唐代,漢樂府的發展衍變形成兩種主要的形式。一種是文人以模擬為創作的「古題樂府」(也叫「舊題樂府」),它借用「漢樂府」的題目,寫新的內容,猶如「舊瓶裝新酒」,如曹操的《步出夏門行》((七上)、楊炯的《從軍行》、李賀的《雁門太守行》(九下)、李白的《蜀道難》《將進酒》(高中)等。這些詩歌的特點是雖沿用了漢樂府的題目,但寫的內容是新的,不過與原題有一定的聯系,如「從軍行」與軍隊軍事有關,「雁門太守行」與邊塞有關。文人模擬樂府在內容上從漢樂府的敘事為主轉變為以抒情為主;在形式、手法上,則借鑒其通俗明快而又加以「雅化」,增添了文人色彩,提高了藝術品位。「古題樂府」有五言與七言兩種形式。七言的古題樂府,今能見到最早的是三國時曹丕的《燕歌行》,至南朝齊梁時的鮑照始大力為之,寫出了《擬行路難》(18首)等。樂府詩可以歌唱,而七言樂府體主要是以吟誦為主,在內容篇幅上,一般比較長,吟誦時如行雲流水,一氣而下。它可以自由轉換韻腳來極盡內容多變、結構轉折、氣勢壯闊、感情跌宕多姿之妙,這種詩體適宜於承載較大思想內容、抒發激越奔放之情,既有古樂府通俗明快的特點,又以文人抒情言志為主,形式以七言句式為主,間有雜言,文采飛揚,讀來抑揚頓挫,所以人們又稱之為「歌行體」。

Ⅳ 在java中,什麼是類載入器子系統

java中的類要載入到jvm中才能使用,那麼把java類載入到jvm中的工具,就是類載入器。
java內置3種類載入器,BootstrapClassLoader,ExtClassLoader,SystemClassLoader(可能名字不對),第一個是載入jvm啟動時需要的類和一些基本java類庫,它不是java寫的;另外兩個都是java寫的,用來載入其它java類。
用戶自己寫的類一般用SystemClassLoader載入,因為它的載入路徑是classpath,可以自己設定,一般都會把項目路徑設進去

Ⅳ java里有多少個類載入器

系統的類載入器如下
AppClassLoader--------------->ExtClassLoader--------------->BootStrap
* CLASSPATH指定的所有jar或目錄 JRE/lib/ext/*.jar JRE/lib/rt.jar
除此之外還可以自定義

Ⅵ java classloader 載入哪些類

BootStrap ClassLoader:稱為啟動類載入器,是Java類載入層次中最頂層的類載入器,負責載入JDK中的核心類庫,如:rt.jar、resources.jar、charsets.jar等
Extension ClassLoader:稱為擴展類載入器,負責載入Java的擴展類庫,默認載入JAVA_HOME/jre/lib/ext/目下的所有jar
App ClassLoader:稱為系統類載入器,負責載入應用程序classpath目錄下的所有jar和class文件

Ⅶ 關於java 類的載入過程,下面哪些描述是正確的

關於Java 類的載入過程,下面哪些描述是正確的(A C )
A、在Java 中,有四種類型的類載入器:BootStrapClassLoader、ExtClassLoader、AppClassLoader 以及用戶自定義的 ClassLoader。
B、使用 new 關鍵字創建類實例時,其實就顯示地包含了類的載入過程
C、在Java 中,類的實例化流程分為兩個部分:類的載入和類的實例化。類的載入又分
為顯式載入和隱式載入。
D、Class.forName 來載入類時,是通過ExtClassLoader進行載入的。

Ⅷ 描述一下JVM載入class文件的原理

Java語言是一種具有動態性的解釋型語言,類(class)只有被載入到JVM中後才能運行。當運行指定程序時,JVM會將編譯生成的.class文件按照需求和一定的規則載入到內存中,並組織成為一個完整的Java應用程序。這個載入過程是由類載入器來完成的,具體來說,就是由ClassLoader和它的子類來實現的。類載入器本身也是一個類,其實質是把類文件從硬碟讀取到內存中。
類的載入方式分為隱式載入與顯式載入兩種。隱式載入指的是程序在使用new等方法創建對象時,會隱式地調用類的載入器把對應的類載入到JVM中。顯式載入指的是通過直接調用class.forName()方法來把所需要的類載入到JVM中。
任何一個工程項目都是由許多個類組成的,當程序啟動時,只把需要載入的類載入到JVM中,其他類只有被使用到的時候才會被載入,採用這種方法,一方面可以加快載入速度,另外一方面可以節約程序運行過程中對內存的開銷。此外,在Java語言中,每個類或介面都對應一個.class文件,這些文件可以被看成一個個可以被動態載入的單元,因此當只有部分類被修改時,只需要重新編譯變化的類即可,而不需要重新編譯所有文件,因此加快了編譯速度。

Ⅸ Java的ServiceLoader有多個類載入器

JVM有三種類載入器:bootstrap負責載入系統類,extclassloader負責載入擴展類,appclassloader負責載入應用類。他們主要是分工不一樣,各自負責不同的區域,另外也是為了實現委託模型。什麼是委託模型呢,其實就是當類載入器有載入需求的時候,先請示他的父類使用父類的搜索路徑來加入,如果沒有找到的話,才使用自己的搜索路徑來來搜索類。
當執行 java ***.class 的時候, java.exe 會幫助我們找到 JRE ,接著找到位於 JRE 內部的 jvm.dll ,這才是真正的 Java 虛擬機器 , 最後載入動態庫,激活 Java 虛擬機器。虛擬機器激活以後,會先做一些初始化的動作,比如說讀取系統參數等。一旦初始化動作完成之後,就會產生第一個類載入器―― Bootstrap Loader , Bootstrap Loader 是由 C++ 所撰寫而成,這個 Bootstrap Loader 所做的初始工作中,除了一些基本的初始化動作之外,最重要的就是載入 Launcher.java 之中的 ExtClassLoader ,並設定其 Parent 為 null ,代表其父載入器為 BootstrapLoader 。然後 Bootstrap Loader 再要求載入 Launcher.java 之中的 AppClassLoader ,並設定其 Parent 為之前產生的 ExtClassLoader 實體。這兩個載入器都是以靜態類的形式存在的。這里要請大家注意的是, Launcher$ExtClassLoader.class 與 Launcher$AppClassLoader.class 都是由 Bootstrap Loader 所載入,所以 Parent 和由哪個類載入器載入沒有關系。
下面的圖形可以表示三者之間的關系:
BootstrapLoader <---(Extends)----AppClassLoader <---(Extends)----ExtClassLoader
這三個載入器就構成我們的 Java 類載入體系。他們分別從以下的路徑尋找程序所需要的類:
BootstrapLoader : sun.boot.class.path
ExtClassLoader: java.ext.dirs
AppClassLoader: java.class.path
這三個系統參量可以通過 System.getProperty() 函數得到具體對應的路徑。大家可以自己編程實現查看具體的路徑。

閱讀全文

與java類載入器種類相關的資料

熱點內容
銀河v10驅動重編譯 瀏覽:889
電腦上文件夾右擊就會崩潰 瀏覽:689
右美維持演算法 瀏覽:938
php基礎編程教程pdf 瀏覽:219
穿越之命令與征服將軍 瀏覽:351
android廣播重復 瀏覽:832
像阿里雲一樣的伺服器 瀏覽:318
水冷空調有壓縮機嗎 瀏覽:478
訪問日本伺服器可以做什麼 瀏覽:432
bytejava詳解 瀏覽:448
androidjava7 瀏覽:384
伺服器在山洞裡為什麼還有油 瀏覽:886
天天基金app在哪裡下載 瀏覽:974
伺服器軟路由怎麼做 瀏覽:292
冰箱壓縮機出口 瀏覽:228
OPT最佳頁面置換演算法 瀏覽:644
網盤忘記解壓碼怎麼辦 瀏覽:853
文件加密看不到裡面的內容 瀏覽:654
程序員腦子里都想什麼 瀏覽:434
oppp手機信任app在哪裡設置 瀏覽:189