Java虛擬機器執行時資料區域劃分
Java虛擬機器資料執行時區域
方法區(Method Area)
儲存載入的類資訊,常量,靜態變數,編譯器編譯後的程式碼等資料。雖然JVM規範把方法區描述為堆的一個邏輯部分,但它卻有一個別名叫做Non-Heap。Class檔案中除了有類的版本,欄位,方法,介面等描述資訊外,還有一項是常量池,用於存放編譯器生成的各種字面量和符號引用,包括字串常量。JVM載入Class後把常量池中的資料放入到執行時常量池。方法區的執行時資料(包括執行時常量池)是執行緒共享的。
堆(Java Heap)
堆是被執行緒共享的一塊記憶體區域,在JVM啟動時建立。所有的物件例項以及陣列都要在這裡分配記憶體,但是隨著JIT編譯器的發展,漸漸變得不是那麼絕對了。
虛擬機器棧(Java Virtual Machine Stack)
描述Java方法執行的記憶體模型,每個方法在執行的同時都會建立一個棧幀(Stacks Frame)用於儲存區域性變數表,運算元棧,動態連結,方法出口等資訊。每一個方法從呼叫直至執行完成的過程,就對應一個棧幀在JVM棧中入棧到出棧的過程。 區域性變數表是一組變數值儲存空間,用於存放方法引數和方法內部定義的區域性變數。 所需的記憶體空間在編譯期間完成分配,當進入一個方法時,這個方法需要在棧幀中分配多大的區域性變數空間是完全確定的,在方法執行期間不會改變區域性變數表的大小。為最區域性變數表的容量以變數槽(Slot)小單位,32位虛擬機器中一個Slot可以存放一個32位以內的資料型別(boolean、byte、char、short、int、float、reference和returnAddress八種)。虛擬機器是使用區域性變數表完成引數值到引數變數列表的傳遞過程的,如果是例項方法(非static),那麼區域性變數表的第0位索引的Slot預設是用於傳遞方法所屬物件例項的引用,在方法中透過this訪問。虛擬機器棧是執行緒獨享的。
本地方法棧(Native Method Stack)
與JVM棧發揮的作用非常相似,區別不過是JVM棧為JVM執行Java方法服務,而本地方法棧為JVM使用到的Native方法服務。也是執行緒獨享的。
程式計數器(Program Counter Register)
一塊較小的記憶體空間,可以看作是當前執行緒所執行的位元組碼的行號指示器,位元組碼直譯器就是透過改變計數器的值來選取下一條執行的位元組碼指令。每個執行緒擁有獨立的一個計數器。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2212356/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java虛擬機器——執行時資料區域Java虛擬機
- Java虛擬機器-執行時資料區Java虛擬機
- 詳解Java 虛擬機器(第①篇)——執行時資料區域Java虛擬機
- 關於Java虛擬機器執行時資料區域的總結Java虛擬機
- Java 虛擬機器執行時資料區詳解Java虛擬機
- Java虛擬機器記憶體區域劃分Java虛擬機記憶體
- Golang實現JAVA虛擬機器-執行時資料區GolangJava虛擬機
- Java 虛擬機器中的執行時資料區分析Java虛擬機
- JDK1.8-Java虛擬機器執行時資料區域和HotSpot虛擬機器的記憶體模型JDKJava虛擬機HotSpot記憶體模型
- 虛擬機器系列 | JVM執行時資料區虛擬機JVM
- JVM虛擬機器-執行時資料區概述JVM虛擬機
- Java 虛擬機器:看完就懂 JVM 架構和執行時資料區 (記憶體區域)Java虛擬機JVM架構記憶體
- Java虛擬機器--方法區(執行時常量池)Java虛擬機
- 深入理解Java虛擬機器筆記之一Java執行時資料區Java虛擬機筆記
- 【JVM從小白學成大佬】2.Java虛擬機器執行時資料區JVMJava虛擬機
- 【深入學習JVM 01】執行時資料區域劃分JVM
- java的執行時資料區域Java
- jvm-執行時資料區(程式計數器、Java虛擬機器棧、本地方法棧)JVMJava虛擬機
- Java虛擬機器之記憶體區域Java虛擬機記憶體
- 你還在看《深入理解Java虛擬機器》的執行時資料模型嗎?Java虛擬機模型
- Java虛擬機器記憶體區域詳解Java虛擬機記憶體
- JVM執行時資料區域JVM
- 深入學習Java虛擬機器——虛擬機器位元組碼執行引擎Java虛擬機
- [深入理解Java虛擬機器]執行緒Java虛擬機執行緒
- java虛擬機器記憶體的各個區域Java虛擬機記憶體
- Java虛擬機器執行機制與相關概念Java虛擬機
- Java虛擬機器詳解(二)------執行時記憶體結構Java虛擬機記憶體
- Java 虛擬機器之二:Java語言的執行機制Java虛擬機
- 弄清Java虛擬機器GC的執行過程Java虛擬機GC
- 深入理解虛擬機器之Java記憶體區域虛擬機Java記憶體
- Java虛擬機器01——Java記憶體資料區域和記憶體溢位異常Java虛擬機記憶體溢位
- Hotspot VM 執行時資料區記憶體結構劃分HotSpot記憶體
- JVM學習-執行時資料區域JVM
- 伺服器物理機使用ESXI虛擬化並劃分虛擬機器伺服器虛擬機
- 3 分鐘理解 Java 虛擬執行緒Java執行緒
- Java記憶體區域(執行時資料區域)和記憶體模型(JMM)Java記憶體模型
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- Java虛擬機器:記憶體管理與執行引擎Java虛擬機記憶體