Java程序計數器刨根問底,大部分程序員都收藏起來了

2021-02-22    分類: 網站建設

JAVA虛擬機管理的內存區(qū)域圖

Java程序計數器刨根問底,大部分程序員都收藏起來了

1.什么是程序計數器?

程序計數器是當前線程正在執(zhí)行的字節(jié)碼的地址。程序計數器是線程隔離的,每一個線程在工作的時候都有一個獨立的計數器。

2.字節(jié)碼的執(zhí)行原理

編譯后的字節(jié)碼在沒有經過JIT(實時編譯器)編譯前,是通過字節(jié)碼解釋器進行解釋執(zhí)行。其執(zhí)行原理為:字節(jié)碼解釋器讀取內存中的字節(jié)碼,按照順序讀取字節(jié)碼指令,讀取一個指令就將其翻譯成固定的操作,根據這些操作進行分支,循環(huán),跳轉等動作。

3.程序計數器的作用?

從字節(jié)碼的執(zhí)行原理來看,單線程的情況下程序計數器是可有可無的。因為即使沒有程序計數器的情況下,程序會按照指令順序執(zhí)行下去,即使遇到了分支跳轉這樣的流程也會按照跳轉到指定的指令處繼續(xù)順序執(zhí)行下去,是完全能夠保證執(zhí)行順序的。

但是現實中程序往往是多線程協(xié)作完成任務的。JVM的多線程是通過CPU時間片輪轉來實現的,某個線程在執(zhí)行的過程中可能會因為時間片耗盡而掛起。當它再次獲取時間片時,需要從掛起的地方繼續(xù)執(zhí)行。在JVM中,通過程序計數器來記錄程序的字節(jié)碼執(zhí)行位置。程序計數器具有線程隔離性,每個線程擁有自己的程序計數器

4.程序計數器的特點

(1)程序計數器具有線程隔離性

(2)程序計數器占用的內存空間非常小,可以忽略不計

(3)程序計數器是java虛擬機規(guī)范中唯一一個沒有規(guī)定任何OutofMemeryError的區(qū)域

(4)程序執(zhí)行的時候,程序計數器是有值的,其記錄的是程序正在執(zhí)行的字節(jié)碼的地址

(5)執(zhí)行native本地方法時,程序計數器的值為空。原因是native方法是java通過jni調用本地C/C++庫來實現,非java字節(jié)碼實現,所以無法統(tǒng)計

新聞名稱:Java程序計數器刨根問底,大部分程序員都收藏起來了
網站鏈接:http://m.kartarina.com/news8/102358.html

成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站建設微信小程序關鍵詞優(yōu)化網站內鏈靜態(tài)網站網站營銷

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都定制網站網頁設計
主站蜘蛛池模板: 国产激情无码一区二区app| 无码夫の前で人妻を犯す中字| 久久久无码精品亚洲日韩蜜臀浪潮| 日韩乱码人妻无码中文字幕| 免费无码看av的网站| 国精无码欧精品亚洲一区| 中文字幕无码成人免费视频| 国产精品无码无片在线观看| 内射精品无码中文字幕| 国产精品无码专区| 97无码免费人妻超级碰碰夜夜| 亚洲AV成人无码久久精品老人| 国产成人精品无码一区二区老年人 | 精品无人区无码乱码毛片国产| 免费A级毛片无码视频| 国产精品午夜福利在线无码| 精品无码专区亚洲| 人妻丰满熟妇岳AV无码区HD| 国产av永久无码天堂影院| 中文字幕无码免费久久9一区9| 无码熟妇αⅴ人妻又粗又大| 亚洲中文字幕无码中文字| 亚洲精品高清无码视频| 亚洲av无码国产精品色在线看不卡| 亚洲天然素人无码专区| 无码专区AAAAAA免费视频| 亚洲国产精品成人精品无码区在线| 妖精色AV无码国产在线看| 亚洲6080yy久久无码产自国产| 亚洲AV成人无码天堂| 久久国产亚洲精品无码| 精品亚洲AV无码一区二区| 无码AV片在线观看免费| 少妇精品无码一区二区三区 | 影院无码人妻精品一区二区| 无码VA在线观看| 亚洲国产精品无码久久98| 中文字幕AV无码一区二区三区| 亚洲最大无码中文字幕| 免费A级毛片无码无遮挡内射| 无码国内精品久久综合88|