溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中怎么利用Jvm加載類

發(fā)布時間:2021-08-13 14:24:20 來源:億速云 閱讀:108 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)Java中怎么利用Jvm加載類,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。


  1、棧:


  每一個線程運行起來的時候就會對應(yīng)一個棧(線程棧),棧中存放的數(shù)據(jù)被當(dāng)前線程所獨享不會產(chǎn)生資源共享情況,所以線程是安全的。


  而棧當(dāng)中存放的是棧幀,當(dāng)線程調(diào)用方法時,就是形成一個棧幀,并將這個棧幀進行壓棧操作。方法執(zhí)行完后,進行出棧操作。這個棧幀里面包括局部變量,操作數(shù)棧,指向當(dāng)前方法對應(yīng)類的常量池引用,方法返回地址等信息。


  2、本地方法棧:


  本地方法棧的機制和棧的相似,區(qū)別在于,棧運行的是Java 實現(xiàn)的方法,而本地方法棧運行的是本地方法。本地方法指的是 JVM 需要調(diào)用非Java 語言所實現(xiàn)的方法,例如 C 語言。在 JVM 規(guī)范中,沒有強化性要求實現(xiàn)方一定要劃分出本地方法棧(例如:HotSpot 虛擬機將本地方法棧和棧合二為一)和具體實現(xiàn)(不同的操作系統(tǒng),對 JVM規(guī)范的具體實現(xiàn)都不一樣)。


  3、程序計數(shù)器:


  程序計數(shù)器也可以稱為 PC 寄存器(通俗講就是 指令緩存)。它主要用于緩存當(dāng)前程序下一條指令的指令地址,CPU 根據(jù)這個地址找到將要執(zhí)行的指令。這個寄存器是 JVM內(nèi)部實現(xiàn)的,不是物理概念上的計數(shù)器,不過和 JVM 的實現(xiàn)邏輯一樣。


  4、堆:


  堆內(nèi)存主要存放創(chuàng)建的對象和數(shù)組。堆內(nèi)存在 JVM 中是唯一的,能被多個線程所共享。堆里面的每一個對象都存放著實例的實例變量。堆內(nèi)存的對象沒有被引用,會自動被 Java垃圾回收機制回收。


  當(dāng)在方法中定義了局部變量,如果這個變量是基本數(shù)據(jù)類型,那么這個變量的值就直接存放在棧中;如果這個變量是引用數(shù)據(jù)類型,那么變量值就存放在堆內(nèi)存中,而棧中存放的是指向堆中的引用地址。


  5、方法區(qū):

       方法區(qū)在 JVM 也是一個非常重要的一塊內(nèi)存區(qū)域,和堆一樣,可以被多個線程多共享。


  主要存放每一個加載 class 的信息。class 信息主要包含魔數(shù)(確定是否是一個 class 文件),常量池,訪問標志(當(dāng)前的類是普通類還是接口,是否是抽象類,是否被 public 修飾,是否使用了 final修飾等描述信息......),字段表集合信息(使用什么訪問修飾符,是實例變量還是靜態(tài)變量,是否使用了 final 修飾等描述信息.....),方法表集合信息(使用什么訪問修飾符,是否靜態(tài)方法,是否使用了 final 修飾,是否使用了 synchronized 修飾,是否是native 方法......)等內(nèi)容。當(dāng)一個類加載器加載了一個類的時候,會根據(jù)這個 class 文件創(chuàng)建一個class 對象,class 對象就包含了上述的信息。


  后續(xù)要創(chuàng)建這個類的實例,都根據(jù)這個 class 對象創(chuàng)建出來的。


  6、常量池:


  常量池是方法區(qū)中的一部分,存放 class 對象中最重要的資源。JVM 為每一個 class 對象都維護一個常量池。

看完上述內(nèi)容,你們對Java中怎么利用Jvm加載類有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI