當前位置:首頁 » 編程語言 » java類載入器載入類

java類載入器載入類

發布時間: 2023-10-05 11:13:28

java類載入器有幾種

Java中載入器的種類大致可以分為四種:Bootstrap ClassLoader(由C++語言寫成),系統載入器(也就是內部類AppClassLoader),ExtClassLoader,以及java.net.UrlClassLoader.
當我們運行一個程序時,首先是找到JDK安裝目下的jvm.dll來啟動JAVA虛擬機,而後Bootstrap ClassLoader產生,接下來就是Bootstrap ClassLoader來載入ExtClassLoader,並且指定ExtClassLoader的父載入器為Bootstrap ClassLoader,但是因為Bootstrap ClassLoader用C++語言寫的,所以用JAVA的觀點來看,這個載入器的實例是不存在的,所以ExtClassLoader的父載入器被設置為了null,然後就是Bootstrap ClassLoader將AppClassLoader裝載,並指定其父載入器為ExtClassLoader。
JAVA是按照載入器的委派模型來實現的。這種模型是JAVA安全性機制的保證。並且值得我們注意的就是這幾個載入器的默認載入類的路徑。對於AppCLassLoder來說,它的路徑也就是我們的classpath裡面的路徑。而對於ExtClassLoader來說,它的路徑是jre\lib\ext\classes.對於URLClassLoader來說,它的載入路徑是我們指定的url。

❷ 請描述一下JVM載入class文件的原理機制

原理:Java中的所有類,都需要由類載入器裝載到JVM中才能運行。類載入器本身也是一個類,而它的工作就是把class文件從硬碟讀取到內存中。

在寫程序的時候,我們幾乎不需要關心類的載入,因為這些都是隱式裝載的,除非我們有特殊的用法,像是反射,就需要顯式的載入所需要的類。

類裝載方式,有兩種 :

1、隱式裝載, 程序在運行過程中當碰到通過new 等方式生成對象時,隱式調用類裝載器載入對應的類到jvm中。

2、顯式裝載, 通過class.forname()等方法,顯式載入需要的類

Java類的載入是動態的,它並不會一次性將所有類全部載入後再運行,而是保證程序運行的基礎類(像是基類)完全載入到jvm中,至於其他類,則在需要的時候才載入。這當然就是為了節省內存開銷。

(2)java類載入器載入類擴展閱讀:

Java的類載入器有三個,對應Java的三種類:

Bootstrap Loader :啟動類載入器,是虛擬機自身的一部分。負責將存放在lib目錄中的類庫載入到虛擬機中。其無法被Java程序直接引用。負責載入系統類 (指的是內置類,像是String,對應於C#中的System類和C/C++標准庫中的類)。

ExtClassLoader :負責載入擴展類(就是繼承類和實現類)。

AppClassLoader :負責載入用戶類路徑(ClassPath)上所指定的類庫(程序員自定義的類)。

JVM中類的載入是由類載入器(ClassLoader)和它的子類來實現行察的,Java中的類載入器是一個重要的Java運行時系統組件,它負責在運行時查找和裝入類文件中的類。

由於Java的跨沒帶擾平台性,經過編譯的Java源程序並不是一個可執行程序,而是一個或多個類文件。當Java程序需要使用某個類時,JVM會確保這個類已經被載入、連接(驗證、准備和解析)和枯旦初始化。

類的載入是指把類的.class文件中的數據讀入到內存中,通常是創建一個位元組數組讀入.class文件,然後產生與所載入類對應的Class對象。載入完成後,Class對象還不完整,所以此時的類還不可用。

當類被載入後就進入連接階段,這一階段包括

驗證:為了確保Class文件的位元組流中包含的信息符合當前虛擬機的要求,並且不會危害虛擬機自身的安全。

熱點內容
阿里雲伺服器鏡像市場 發布:2025-02-01 09:46:04 瀏覽:524
任子行伺服器管理口默認地址 發布:2025-02-01 09:42:58 瀏覽:995
設備作為FTP客戶端時 發布:2025-02-01 09:35:07 瀏覽:935
安卓如何登錄ios明日之後 發布:2025-02-01 09:31:59 瀏覽:305
怎麼查看手機存儲卡 發布:2025-02-01 09:31:51 瀏覽:340
java知識點總結 發布:2025-02-01 09:08:32 瀏覽:684
如何在手機版給伺服器加光影 發布:2025-02-01 09:02:14 瀏覽:727
簡單神器安卓系統的哪個好 發布:2025-02-01 09:00:48 瀏覽:354
社保卡密碼如何異地改密碼 發布:2025-02-01 08:57:22 瀏覽:33
什麼安卓平板最好能開120幀 發布:2025-02-01 08:55:58 瀏覽:380