首頁 > Java > java教程 > java之JVM各類機制是什麼

java之JVM各類機制是什麼

PHPz
發布: 2023-05-26 17:48:40
轉載
952 人瀏覽過

1.類別載入機制

分為 載入、驗證 、準備 、解析 、初始化、 使用 、卸載。

(1)加載

在硬碟上尋找並透過IO讀入字節碼文件,使用到類別時才會加載,例如呼叫類別的main()方法, new對像等等,在載入階段會在記憶體中產生一個代表這個類別的java.lang.Class對象,作為方法區這個類別的各種資料的存取入口。

(2)驗證

校驗字節碼檔案的正確性 。

(3)準備

給類別的靜態變數分配內存,並賦予預設值 。

(4)解析

將符號引用替換為直接引用,該階段會把一些靜態方法(符號引用,例如main()方法)替換為指向資料所存記憶體的指標或句柄等(直接引用),這是所謂的靜態連結過程(類別載入期間完成),動態連結是在程式運行期間完成的將符號引用替換為直接引用,下節課會講到動態連結。

(5)初始化

2.雙親委派機制

對類別的靜態變數初始化為指定的值,執行靜態程式碼區塊。

應用程式類別載入器AppClassLoader載入類別的雙親委派機制原始碼,AppClassLoader的loadClass方法最終會呼叫其父類ClassLoader的loadClass方法,該方法的大致邏輯如下:

首先,檢查一下指定名稱的類別是否已經加載過,如果加載過了,就不需要再加載,直接返回。

如果此類沒有載入過,那麼,再判斷一下是否有父載入器;如果有父載入器,則由父載入器載入(即呼叫parent.loadClass(name, false);)。或是呼叫bootstrap類別載入器來載入。

如果父載入器及bootstrap類別載入器都沒有找到指定的類,那麼呼叫目前類別載入器的findClass方法來完成類別載入。

3.全碟負責委託機制

「全碟負責」是指當一個ClassLoder裝載一個類別時,除非顯示的使用另一個ClassLoder,該類別所依賴及引用的類別也由這個ClassLoder載入。

以上是java之JVM各類機制是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板