最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java內(nèi)存模型中的虛擬機(jī)棧原理分析

 更新時(shí)間:2019年11月07日 10:16:18   作者:Demrystv  
這篇文章主要介紹了Java內(nèi)存模型中的虛擬機(jī)棧原理分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

  Java虛擬機(jī)在執(zhí)行Java程序的過程中會(huì)把它所管理的內(nèi)存劃分為若干個(gè)不同的數(shù)據(jù)區(qū)域,這些區(qū)域都會(huì)有各自的用途,以及創(chuàng)建和銷毀的時(shí)間,有的區(qū)域會(huì)隨著虛擬機(jī)進(jìn)程的啟動(dòng)而存在,有些區(qū)域則依賴用戶線程的啟動(dòng)和結(jié)束而建立和銷毀。Java虛擬機(jī)所管理的內(nèi)存將會(huì)包括以下幾個(gè)運(yùn)行時(shí)數(shù)據(jù)區(qū)域。如下圖所示(圖片來自《深入理解Java虛擬機(jī)》一書)。

  在內(nèi)存中,棧分為兩部分,一部分是本地方法棧,為虛擬機(jī)使用到的Native方法服務(wù),具體的虛擬機(jī)可以自由實(shí)現(xiàn),另一部分就是虛擬機(jī)棧,主要是為虛擬機(jī)執(zhí)行Java方法服務(wù),因此也成為Java棧,本文主要是對(duì)虛擬機(jī)棧進(jìn)行詳細(xì)解讀。

  1. Java棧也稱為虛擬機(jī)棧,也就是我們常常所說的棧。 Java棧是Java方法執(zhí)行的內(nèi)存模型。

  2. Java棧中存放的是一個(gè)個(gè)的棧幀,每個(gè)棧幀對(duì)應(yīng)一個(gè)被調(diào)用的方法,在棧幀中包括局部變量表(Local Variables)、操作數(shù)棧(Operand Stack)、指向當(dāng)前方法所屬的類的運(yùn)行時(shí)常量池(運(yùn)行時(shí)常量池的概念在方法區(qū)部分會(huì)談到)的引用(Reference to runtime constant pool)、方法返回地址(Return Address)和一些額外的附加信息。 當(dāng)線程執(zhí)行一個(gè)方法時(shí),就會(huì)隨之創(chuàng)建一個(gè)對(duì)應(yīng)的棧幀,并將建立的棧幀壓棧。當(dāng)方法執(zhí)行完畢之后,便會(huì)將棧幀出棧。 因此對(duì)于方法沒有存在回收資源一說 。

  3. 局部變量表,顧名思義,想必不用解釋大家應(yīng)該明白它的作用了吧。就是用來存儲(chǔ)方法中的局部變量(包括在方法中聲明的非靜態(tài)變量以及函數(shù)形參)。對(duì)于基本數(shù)據(jù)類型的變量,則直接存儲(chǔ)它的值,對(duì)于引用類型的變量,則存的是指向?qū)ο蟮囊?。局部變量表的大小在編譯器就可以確定其大小了,因此在程序執(zhí)行期間局部變量表的大小是不會(huì)改變的。

  4. 操作數(shù)棧,想必學(xué)過數(shù)據(jù)結(jié)構(gòu)中的棧的朋友想必對(duì)表達(dá)式求值問題不會(huì)陌生,棧最典型的一個(gè)應(yīng)用就是用來對(duì)表達(dá)式求值。想想一個(gè)線程執(zhí)行方法的過程中,實(shí)際上就是不斷執(zhí)行語句的過程,而歸根到底就是進(jìn)行計(jì)算的過程。因此可以這么說,程序中的所有計(jì)算過程都是在借助于操作數(shù) 。

  5. 指向運(yùn)行時(shí)常量池的引用,因?yàn)樵诜椒▓?zhí)行的過程中有可能需要用到類中的常量,所以必須要有一個(gè)引用指向運(yùn)行時(shí)常量。

  6. 方法返回地址,當(dāng)一個(gè)方法執(zhí)行完畢之后,要返回之前調(diào)用它的地方,因此在棧幀中必須保存一個(gè)方法返回地址。

  7. 由于每個(gè)線程正在執(zhí)行的方法可能不同,因此每個(gè)線程都會(huì)有一個(gè)自己的Java棧,互不干擾。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring?boot?validation參數(shù)校驗(yàn)與分組嵌套各種類型及使用小結(jié)

    spring?boot?validation參數(shù)校驗(yàn)與分組嵌套各種類型及使用小結(jié)

    參數(shù)校驗(yàn)基本上是controller必做的事情,畢竟前端傳過來的一切都不可信,validation可以簡化這一操作,這篇文章主要介紹了spring?boot?validation參數(shù)校驗(yàn)分組嵌套各種類型及使用小結(jié),需要的朋友可以參考下
    2023-09-09
  • Hadoop多Job并行處理的實(shí)例詳解

    Hadoop多Job并行處理的實(shí)例詳解

    這篇文章主要介紹了Hadoop多Job并行處理的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Java中的Pair詳細(xì)

    Java中的Pair詳細(xì)

    這篇文章主要介紹Java中的很有意思的Pair,下面文章會(huì)以Pair用法展開,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-10-10
  • JavaIO字符操作和對(duì)象操作示例詳解

    JavaIO字符操作和對(duì)象操作示例詳解

    這篇文章主要為大家介紹了JavaIO字符操作和對(duì)象操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java中常用的Lambda表達(dá)式案例解析

    Java中常用的Lambda表達(dá)式案例解析

    這篇文章主要介紹了Java中常用的Lambda表達(dá)式案例解析,Lambxda?使用比較多的場景,就是集合類下的?Lambda?流操作,往往幾行代碼可以幫助我們實(shí)現(xiàn)復(fù)雜代碼,下面和我小編一起進(jìn)入文章學(xué)習(xí)該詳細(xì)內(nèi)容吧
    2022-04-04
  • springboot jackson自定義序列化和反序列化實(shí)例

    springboot jackson自定義序列化和反序列化實(shí)例

    這篇文章主要介紹了spring boot jackson自定義序列化和反序列化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 詳解RestTemplate?用法

    詳解RestTemplate?用法

    RestTemplate?是從?Spring3.0?開始支持的一個(gè)?HTTP?請(qǐng)求工具,也有的稱之為網(wǎng)絡(luò)框架,說白了就是Java版本的一個(gè)postman,這篇文章主要介紹了詳解RestTemplate?用法,需要的朋友可以參考下
    2022-07-07
  • Java實(shí)現(xiàn)解數(shù)獨(dú)的小程序

    Java實(shí)現(xiàn)解數(shù)獨(dú)的小程序

    最近在學(xué)習(xí)Java,然后上個(gè)月迷上了九宮格數(shù)獨(dú),玩了幾天,覺得實(shí)在有趣,就想著能不能用編程來解決,于是就自己寫了個(gè),還真解決了。下面這篇文章就給大家主要介紹了Java實(shí)現(xiàn)解數(shù)獨(dú)的小程序,需要的朋友可以參考借鑒。
    2017-01-01
  • Spring ApplicationListener監(jiān)聽器用法詳解

    Spring ApplicationListener監(jiān)聽器用法詳解

    這篇文章主要介紹了Spring ApplicationListener監(jiān)聽器用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java中BIO、NIO和AIO的區(qū)別、原理與用法

    Java中BIO、NIO和AIO的區(qū)別、原理與用法

    這篇文章主要介紹了Java中BIO、NIO和AIO的區(qū)別、原理與用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

香河县| 九龙城区| 灵宝市| 泌阳县| 开原市| 乳山市| 玉山县| 砀山县| 中超| 铜山县| 普兰县| 天峻县| 商南县| 沙洋县| 阜新市| 沾益县| 鹿邑县| 温州市| 芜湖市| 开原市| 英德市| 托克逊县| 万载县| 大同县| 邹城市| 化德县| 中江县| 石泉县| 罗田县| 方城县| 营山县| 科尔| 平舆县| 临桂县| 称多县| 玛曲县| 宿松县| 洞头县| 栾城县| 黄平县| 乐业县|