欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的程序計(jì)數(shù)器是什么

 更新時(shí)間:2020年09月12日 09:47:07   作者:技術(shù)客  
這篇文章主要介紹了Java中的程序計(jì)數(shù)器是什么,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下

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

JAVA虛擬機(jī)管理的內(nèi)存區(qū)域圖

1.什么是程序計(jì)數(shù)器?

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

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

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

3.程序計(jì)數(shù)器的作用?

從字節(jié)碼的執(zhí)行原理來(lái)看,單線程的情況下程序計(jì)數(shù)器是可有可無(wú)的。因?yàn)榧词箾](méi)有程序計(jì)數(shù)器的情況下,程序會(huì)按照指令順序執(zhí)行下去,即使遇到了分支跳轉(zhuǎn)這樣的流程也會(huì)按照跳轉(zhuǎn)到指定的指令處繼續(xù)順序執(zhí)行下去,是完全能夠保證執(zhí)行順序的。

但是現(xiàn)實(shí)中程序往往是多線程協(xié)作完成任務(wù)的。JVM的多線程是通過(guò)CPU時(shí)間片輪轉(zhuǎn)來(lái)實(shí)現(xiàn)的,某個(gè)線程在執(zhí)行的過(guò)程中可能會(huì)因?yàn)闀r(shí)間片耗盡而掛起。當(dāng)它再次獲取時(shí)間片時(shí),需要從掛起的地方繼續(xù)執(zhí)行。在JVM中,通過(guò)程序計(jì)數(shù)器來(lái)記錄程序的字節(jié)碼執(zhí)行位置。程序計(jì)數(shù)器具有線程隔離性,每個(gè)線程擁有自己的程序計(jì)數(shù)器

4.程序計(jì)數(shù)器的特點(diǎn)

(1)程序計(jì)數(shù)器具有線程隔離性

(2)程序計(jì)數(shù)器占用的內(nèi)存空間非常小,可以忽略不計(jì)

(3)程序計(jì)數(shù)器是java虛擬機(jī)規(guī)范中唯一一個(gè)沒(méi)有規(guī)定任何OutofMemeryError的區(qū)域

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

(5)執(zhí)行native本地方法時(shí),程序計(jì)數(shù)器的值為空。原因是native方法是java通過(guò)jni調(diào)用本地C/C++庫(kù)來(lái)實(shí)現(xiàn),非java字節(jié)碼實(shí)現(xiàn),所以無(wú)法統(tǒng)計(jì)

以上就是Java中的程序計(jì)數(shù)器是什么的詳細(xì)內(nèi)容,更多關(guān)于Java 程序計(jì)數(shù)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • spring整合kaptcha驗(yàn)證碼的實(shí)現(xiàn)

    spring整合kaptcha驗(yàn)證碼的實(shí)現(xiàn)

    這篇文章主要介紹了spring整合kaptcha驗(yàn)證碼的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 通過(guò)實(shí)例解析Spring argNames屬性

    通過(guò)實(shí)例解析Spring argNames屬性

    這篇文章主要介紹了通過(guò)實(shí)例解析Spring argNames屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • springboot枚舉類(lèi)型傳遞的步驟

    springboot枚舉類(lèi)型傳遞的步驟

    這篇文章主要介紹了springboot枚舉類(lèi)型傳遞的步驟,幫助大家更好的理解和學(xué)習(xí)使用springboot,感興趣的朋友可以了解下
    2021-04-04
  • Maven項(xiàng)目配置Tomcat的兩種方式

    Maven項(xiàng)目配置Tomcat的兩種方式

    本文主要介紹了Maven項(xiàng)目配置Tomcat的兩種方式,一種是用idea開(kāi)發(fā),另一種是eclipse開(kāi)發(fā),具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-05-05
  • Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn)

    Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn)

    Java動(dòng)態(tài)字節(jié)碼注入技術(shù)是一種在運(yùn)行時(shí)修改Java字節(jié)碼的技術(shù),本文主要介紹了Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • Mybatis中連接查詢(xún)和嵌套查詢(xún)實(shí)例代碼

    Mybatis中連接查詢(xún)和嵌套查詢(xún)實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Mybatis中連接查詢(xún)和嵌套查詢(xún)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Mybatis如何分割字符串

    Mybatis如何分割字符串

    這篇文章主要介紹了Mybatis如何分割字符串問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java中Queue的poll()和remove()區(qū)別詳解

    Java中Queue的poll()和remove()區(qū)別詳解

    這篇文章主要介紹了Java中Queue的poll()和remove()區(qū)別詳解,Queue接口提供了許多方法,其中poll()和remove()是兩個(gè)常用的方法,它們的區(qū)別在于,當(dāng)隊(duì)列為空時(shí),poll()方法返回null,而remove()方法會(huì)拋出,需要的朋友可以參考下
    2023-07-07
  • 一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型

    一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型

    這篇文章主要介紹了一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型,本篇文章主要來(lái)總結(jié)一下Java虛擬機(jī)內(nèi)存的各個(gè)區(qū)域,以及這些區(qū)域的作用、服務(wù)對(duì)象以及其中可能產(chǎn)生的問(wèn)題,作為大家的面試寶典。,需要的朋友可以參考下
    2019-06-06
  • 利用Java提取PDF表格到文本、CSV及excel工作表

    利用Java提取PDF表格到文本、CSV及excel工作表

    如何精準(zhǔn)地提取PDF格式中嵌入的表格數(shù)據(jù),并將其無(wú)縫轉(zhuǎn)換為更加易于分析和操作的形式,是一項(xiàng)重要的文檔處理技巧,本文將介紹如何利用Java從PDF文檔提取表格數(shù)據(jù),并寫(xiě)入文本文件、CSV文件以及Excel工作表,需要的朋友可以參考下
    2024-09-09

最新評(píng)論