日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
JVM底層原理解析,在這個(gè)開(kāi)源項(xiàng)目里講透了

JVM底層原理解析,在這個(gè)開(kāi)源項(xiàng)目里講透了

作者: 猿妹 2021-08-07 10:27:52

云計(jì)算

虛擬化 JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫(xiě),JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。

JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫(xiě),JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。

Java程序員們都知道,JVM 是咱們成為大神必須要跨過(guò)的一道坎,今天猿妹在Github周榜上發(fā)現(xiàn)了一個(gè)非常干的JVM開(kāi)源項(xiàng)目——jvm,這個(gè)項(xiàng)目里面記錄一些創(chuàng)建者認(rèn)為需要重點(diǎn)掌握的JVM知識(shí)點(diǎn),通過(guò)這個(gè)項(xiàng)目學(xué)習(xí)后,如果你想更加全面地了解 JVM 底層原理,可以閱讀周志明老師《深入理解 Java 虛擬機(jī)——JVM 高級(jí)特性與最佳實(shí)踐(第 2/3 版)》全書(shū)。

這個(gè)項(xiàng)目主要內(nèi)容如下:

整個(gè)項(xiàng)目?jī)?nèi)容還是相對(duì)完整的,下面一起來(lái)看看【JVM內(nèi)存結(jié)構(gòu)】部分內(nèi)容:

Java 虛擬機(jī)的內(nèi)存空間分為 5 個(gè)部分:

  • 程序計(jì)數(shù)器
  • Java 虛擬機(jī)棧
  • 本地方法棧
  • 方法區(qū)

JDK 1.8 同 JDK 1.7 比,最大的差別就是:元數(shù)據(jù)區(qū)取代了永久代。元空間的本質(zhì)和永久代類(lèi)似,都是對(duì) JVM 規(guī)范中方法區(qū)的實(shí)現(xiàn)。不過(guò)元空間與永久代之間最大的區(qū)別在于:元數(shù)據(jù)空間并不在虛擬機(jī)中,而是使用本地內(nèi)存。

Java 虛擬機(jī)棧的定義

Java 虛擬機(jī)棧是描述 Java 方法運(yùn)行過(guò)程的內(nèi)存模型。Java 虛擬機(jī)棧會(huì)為每一個(gè)即將運(yùn)行的 Java 方法創(chuàng)建一塊叫做“棧幀”的區(qū)域,用于存放該方法運(yùn)行過(guò)程中的一些信息,如:

  • 局部變量表
  • 操作數(shù)棧
  • 動(dòng)態(tài)鏈接
  • 方法出口信息

壓棧出棧過(guò)程

當(dāng)方法運(yùn)行過(guò)程中需要?jiǎng)?chuàng)建局部變量時(shí),就將局部變量的值存入棧幀中的局部變量表中。

Java 虛擬機(jī)棧的棧頂?shù)臈钱?dāng)前正在執(zhí)行的活動(dòng)棧,也就是當(dāng)前正在執(zhí)行的方法,PC 寄存器也會(huì)指向這個(gè)地址。只有這個(gè)活動(dòng)的棧幀的本地變量可以被操作數(shù)棧使用,當(dāng)在這個(gè)棧幀中調(diào)用另一個(gè)方法,與之對(duì)應(yīng)的棧幀又會(huì)被創(chuàng)建,新創(chuàng)建的棧幀壓入棧頂,變?yōu)楫?dāng)前的活動(dòng)棧幀。

方法結(jié)束后,當(dāng)前棧幀被移出,棧幀的返回值變成新的活動(dòng)棧幀中操作數(shù)棧的一個(gè)操作數(shù)。如果沒(méi)有返回值,那么新的活動(dòng)棧幀中操作數(shù)棧的操作數(shù)沒(méi)有變化。

目前,jvm已經(jīng)在Github上標(biāo)星6.1K,累計(jì)分支1.5K(Github地址:https://github.com/doocs/jvm)


網(wǎng)站名稱(chēng):JVM底層原理解析,在這個(gè)開(kāi)源項(xiàng)目里講透了
網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/dpiehgi.html