導航:首頁 > 編程語言 > java實現類載入

java實現類載入

發布時間:2023-01-20 14:55:28

java如何實現類載入

重新定義類載入器,也就是ClassLoader,覆蓋其中的一個方法findClass
例如,應用程序可以創建一個網路類載入器,從伺服器中下載類文件。示例代碼如下所示:

ClassLoader loader = new NetworkClassLoader(host, port);
Object main = loader.loadClass("Main", true).newInstance();
. . .

❷ java類的載入過程是怎麼樣的

類載入到jvm需要經歷如下幾個過程:

一.載入
通過類的全限定名轉換為二進制位元組流,在jvm堆中生成代表這個Class的對象,作為方法區域的方法入口.

二.連接
1.驗證:驗證class的位元組流是否對jvm虛擬機造成傷害,是否符合jvm的規范,這里包含幾個驗證.
2.准備:為類的static變數賦初始值,其中不包含類其它實例成員的初始化.
3.解析:將常量池內的符號引用替換成直接引用
三.初始化
這里是static{}塊,構造函數,代碼塊{}的執行過程.
四.使用
對象的屬性,方法等調用操作.
五.銷毀
jvm通過確定對象沒有引用後進行gc操作.

❸ java中類載入的兩種方法是什麼

java類有兩種方法一種是類方法就是用static修飾的,一種是實例方法,就是沒有static修飾的方法

❹ Java類載入機制

1,類的載入



每個開發人員對java.lang.ClassNotFoundExcetpion這個異常肯定都不陌生,這背後就涉及到了java技術體系中的類載入。Java的類載入機制是技術體系中比較核心的部分,雖然和大部分開發人員直接打交道不多,但是對其背後的機理有一定理解有助於排查程序中出現的類載入失敗等技術問題,對理解java虛擬機的連接模型和java語言的動態性都有很大幫助。


那麼什麼是類的載入?


類的載入指的是將類的.class文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法區內,然後在堆區創建一個java.lang.Class對象,用來封裝類在方法區內的數據結構。類的載入的最終產品是位於堆區中的Class對象,Class對象封裝了類在方法區內的數據結構,並且向Java程序員提供了訪問方法區內的數據結構的介面。


類載入器是Java語言的一個創新,也是Java語言流行的重要原因之一。它使得Java類可以被動態載入到Java虛擬機中並執行。類載入器從JDK1.0就出現了,最初是為了滿足JavaApplet的需要而開發出來的。JavaApplet需要從遠程下載Java類文件到瀏覽器中並執行。現在類載入器在Web容器和OSGi中得到了廣泛的使用,而類載入器並不需要等到某個類被「首次主動使用」時再載入它,JVM規范允許類載入器在預料某個類將要被使用時就預先載入它,如果在預先載入的過程中遇到了.class文件缺失或存在錯誤,類載入器必須在程序首次主動使用該類時才報告錯誤(LinkageError錯誤)如果這個類一直沒有被程序主動使用,那麼類載入器就不會報告錯誤。


2,類的生命周期


類載入的過程中包括有載入,驗證,准備,解析,初始化五個階段。而需要注意的是在這五個階段中,載入、驗證、准備和初始化這四個階段發生的順序是確定的,而解析階段則不一定,它在某些情況下可以在初始化階段之後開始,這是為了支持Java語言的運行時綁定(也成為動態綁定或晚期綁定)。另外注意這里的幾個階段是按順序開始,而不是按順序進行或完成,因為這些階段通常都是互相交叉地混合進行的,通常在一個階段執行的過程中調用或激活另一個階段。


載入:查找並載入類的二進制數據


載入時類載入過程的第一個階段,在載入階段,虛擬機需要完成以下三件事情:


1、通過一個類的全限定名來獲取其定義的二進制位元組流。(並沒有指明要從一個Class文件中獲取,可以從其他渠道,譬如:網路、動態生成、資料庫等)


2、將這個位元組流所代表的靜態存儲結構轉化為方法區的運行時數據結構。


3、在Java堆中生成一個代表這個類的java.lang.Class對象,作為對方法區中這些數據的訪問入口。


相對於類載入的其他階段而言,載入階段(准確地說,是載入階段獲取類的二進制位元組流的動作)是可控性最強的階段,電腦培訓http://www.kmbdqn.cn/發現因為開發人員既可以使用系統提供的類載入器來完成載入,也可以自定義自己的類載入器來完成載入。


閱讀全文

與java實現類載入相關的資料

熱點內容
商品驗偽用什麼APP查 瀏覽:350
請問大數據與會計專業做什麼的 瀏覽:77
如何修改數據上年結轉 瀏覽:6
win7一直配置文件重啟 瀏覽:124
佳能ir2525i網路掃描 瀏覽:283
win10指紋無法識別 瀏覽:646
jsp中怎麼引入js文件 瀏覽:925
文件名構成部分 瀏覽:484
興國互聯網app有哪些 瀏覽:475
北京時間票房多少票房統計數據 瀏覽:750
探探文件夾是哪個 瀏覽:429
如何分類微信文件 瀏覽:446
城市天際線win10 瀏覽:813
運動APP跑步如何抓作弊 瀏覽:57
微信中秋節動態祝福語 瀏覽:703
練英語的網站哪個好 瀏覽:894
科來網路分析系統報價 瀏覽:437
哪裡可以上傳自己的php網站 瀏覽:373
安卓手機如何打開zx文件 瀏覽:531
app攻擊是什麼 瀏覽:888

友情鏈接