方法區(qū):也叫永久區(qū),線程共享,用于存儲類結(jié)構(gòu)信息的地方,包括常量池、靜態(tài)變量、構(gòu)造函數(shù)等類型信息,類型信息是由類加載器在類加載時從類文件中提取出來的,永久區(qū)同樣存在垃圾回收機制,用為用戶通過加載器加載的一些類同樣會成為垃圾,JVM 會回收一個未被類引用所占的空間,以使方法區(qū)空間達到最小
堆:是存儲 Java 對象的地方,是 GC 的主要區(qū)域,同樣是線程共享的主要區(qū)域
Java 虛擬機棧:存儲基本數(shù)據(jù)類型,局部變量,虛擬機棧和線程緊密聯(lián)系,每創(chuàng)建一個線程就會創(chuàng)建一個對應(yīng)的虛擬機棧,所以虛擬機棧是線程私有的,這個棧中還包括一個個的棧幀,沒吊用一個方法就會向棧中創(chuàng)建并壓入一個棧幀,每個方法從執(zhí)行到結(jié)束的過程,就對應(yīng)了虛擬機棧從入棧到出戰(zhàn)的過程
本地方法棧:本地方法棧和虛擬機棧功能類似,只不過虛擬機棧為 Java 方法服務(wù),而本地方法棧為外部方法服務(wù),外部方法用 native 標識
本地方法接口:Java 本地接口(JNI)允許運行在Java虛擬機(JVM)上的代碼調(diào)用本地程序和類庫,或者被它們調(diào)用,這些程序和類庫可以是其它語言編寫的,比如 C、C++ 或者匯編語言
直接內(nèi)存:堆外內(nèi)存,又被稱為直接內(nèi)存,這部分內(nèi)存不是由 JVM管理和回收的,需要我們手動的回收,堆內(nèi)內(nèi)存是屬于 JVM 的,由 JVM 進行分配和管理,屬于"用戶態(tài)",而堆外內(nèi)存是由操作系統(tǒng)管理的,屬于"內(nèi)核態(tài)",在 JDK1.4 中加入了 NIO 類,它可以調(diào) native 函數(shù)庫直接分配堆外內(nèi)存,然后通過 Java 堆中的 DirectByteBuffer 對象來指向這塊內(nèi)存,進行內(nèi)存分配等工作
執(zhí)行引擎:虛擬機核心的組件就是執(zhí)行引擎,它負責(zé)執(zhí)行虛擬機的字節(jié)碼,一般戶先進行編譯成機器碼后執(zhí)行
運行時常量池:Class 文件中除了有類的版本、字段、方法、接口等描述信息外,還有一項信息是常量池,用于存放編譯期生成的各種字面量和符號引用,這部分內(nèi)容將在加載后進入方法區(qū)的運行時常量池中存
PC:程序計數(shù)器是一塊較小的內(nèi)存空間,它可以看做是當前線程所執(zhí)行的字節(jié)碼的行號指示器 ;在虛擬機的概念模型里(僅僅是概念模型,各種虛擬機可能會通過一些更高效的方式去實現(xiàn)),字節(jié)碼解釋器工作時,就是通過改變這個計數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令,分支、循環(huán)、跳準、異常處理、線程恢復(fù)等基礎(chǔ)功能都需要依賴這個計數(shù)器來完成
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。