JVM-程序计数器02
生活随笔
收集整理的這篇文章主要介紹了
JVM-程序计数器02
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java虛擬機內存管理
方法區:
二、程序計數器
1.程序計數器的解釋:
程序計數器(Program Counter Register)是一塊較小的內存空間,它可以看做是當前線程所執行的字節碼的行號指示器。在虛擬機的概念模型里(僅是概念模型,各種虛擬機可能會通過一些更高效的方式去實現),字節碼解釋器工作時就是通過改變這個計數器的值來選取下一條需要執行的字節碼指令,分支、循環、跳轉、異常處理、線程恢復等基礎功能都需要依賴這個計數器來完成。
?????????????????????????????????????????????------ 摘自《深入理解JAVA虛擬機》
2.特點
- 程序計數器是一塊較小的內存空間,它可以看作是當前線程所執行的字節碼的行號指示器
- 程序計數器處于處于線程獨占區
- 如果線程執行的是Java方法,這個計數器記錄的是正在執行的虛擬機字節碼指令的地址。如果在執行的是native方法,這個計數器的值為undefined
- 此區域唯一一個在Java虛擬機規范中沒有規定任何OutOfMemoryError(內存溢出)情況區域
- 線程私有
二、Java虛擬機棧
- 虛擬機棧描述的是Java方法執行的動態內存模型
- 棧幀
- 每個方法執行都會創建一個棧幀,伴隨著方法從創建到執行完成。用于存儲局部變量表,操作數棧,動態鏈接,方法出口等。
- 局部變量表
- 存放編譯期可知的各種基本數據類型,引用類型,returnAddress類型
- 局部變量表的內存空間在編譯期完成分配,當進入一個方法時,這個方法需要在幀中分配多少內存是固定的,在方法運行期間是不會改變局部變量表的大小
- 大小
總結
以上是生活随笔為你收集整理的JVM-程序计数器02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python会计实证研究_描述性统计分析
- 下一篇: 众筹网02_项目环境搭建