您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關java類加載器的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
1、類加載器概念
類加載器,用來加載 Java 類到 Java 虛擬機中 , 一般來說,Java 虛擬機使用 Java 類的方式如下:Java 源程序(.java 文件)在經過 Java 編譯器編譯之后就被轉換成 Java 字節代碼(.class 文件) , 類加載器,負責讀取 Java 字節代碼,并轉換成 java.lang.Class 類的一個實例
2、發生的時期
(1)遇到 new、getstatic、putstatic、invokestatic 這四條字節碼指令時,如果類還沒進行初始化,則需要先觸發其初始化。
(2)使用 java.lang.reflect 包的方法對類進行反射調用的時候,如果類還沒進行初始化,則需要先觸發其初始化。
(3)當初始化了一個類的時候,如果發現其父類還沒進行初始化,則需要先觸發其父類的初始化。
(4)當虛擬機啟動時,用戶需要指定一個執行的主類,即調用其 #main(String[] args) 方法,虛擬機則會先初始化該主類。
(5)當使用 JDK7 的動態語言支持時,如果一個 java.lang.invoke.MethodHandle 實例最后的解析結果為 REF_getStatic、REF_putStatic、REF_invokeStatic 的方法句柄,并且這個方法句柄所對應的類沒有進行過初始化,則需要先觸發其初始化。
3、加載Class 的方式
(1)加載,是找到 .class 文件并把這個文件包含的字節碼加載到內存中。
(2)連接,又可以分為三個步驟,分別是字節碼驗證、Class 類數據結構分析及相應的內存分配、最后的符號表的解析。
(3)Initialization(類中靜態屬性和初始化賦值),以及Using(靜態塊的執行)等。
感謝各位的閱讀!關于“java類加載器的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。