程序計數器是一塊較小的內存空間,它可以看做是當前線程所執行的字節碼的行號指示器,在虛擬機的概念模型裏,字節碼解析器工作時就是通過改變這個計數器的值來選取下一條需要執行的字節碼指令。分支,循環,跳轉,異常處理,線程恢復等基礎功能都需要依賴這個計數器來完成。
由於Java虛擬機的多線程是通過線程輪流切換並分配處理器執行時間的方式來實現的,在任何一個確定的時刻,一個處理器(對於多核處理器來說是一個內核)都只會執行一條線程中的指令,因此,爲了線程切換後能恢復到正確的執行位置, 每條線程都需要有一個獨立的程序計數器, 各條線程之間計數器互不影響。 獨立存儲, 我們稱這類內存區域爲”線程私有”的內存。
如果線程正在執行的是一個Java方法,這個計數器記錄的是正在執行的虛擬機字節碼指令的地址。如果正在執行的是Native方法,這幾計數器的值爲空,(undifined)。
此內存區域是唯一一個在Java虛擬機規範中沒有規定任何OutOfMemoryError情況的區域
程序計數器簡要介紹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
面試準備之類的加載過程
wangbiao007
2020-07-08 09:19:19
jvm-sandbox分享
Benett-Chen
2020-07-08 02:30:38
自己實現字節碼增強
Benett-Chen
2020-07-08 02:30:38
jvm sandbox實現字節碼增強
Benett-Chen
2020-07-08 02:30:27
大廠面試必備(三)——JVM(Java虛擬機)
&欧阳羽君&
2020-07-07 21:24:07
Java內存分區(深入理解java虛擬機學習筆記)
一直往前不要停
2020-07-07 17:43:28
5.Java虛擬機內存分配
剽悍的人生不需要理由
2020-07-06 22:27:17
【乾貨】Spring全家桶面試大全(79道含答案),這麼全的Spring全家桶你看過嗎?不能私藏~
哆啦小迁
2020-07-04 15:37:55
【Java面試題】對於構造方法的疑問?——與類的初始化
码农中的吴秀波
2020-07-04 13:19:35
Java虛擬機三:JVM的類加載機制
李树江
2020-07-04 00:13:57
Java虛擬機二:JVM性能調優
李树江
2020-07-04 00:13:56
invokestatic,invokespecial,invokevirtual,invokeinterface
Canliture
2020-07-03 20:26:25
【java虛擬機】java虛擬機的類加載機制
f6zx3qc123
2020-07-03 18:57:00