日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

JVM底層原理解析,在這個開源項目里講透了

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

云計算

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

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

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

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

整個項目內(nèi)容還是相對完整的,下面一起來看看【JVM內(nèi)存結(jié)構(gòu)】部分內(nèi)容:

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

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

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

Java 虛擬機棧的定義

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

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

壓棧出棧過程

當方法運行過程中需要創(chuàng)建局部變量時,就將局部變量的值存入棧幀中的局部變量表中。

Java 虛擬機棧的棧頂?shù)臈钱斍罢趫?zhí)行的活動棧,也就是當前正在執(zhí)行的方法,PC 寄存器也會指向這個地址。只有這個活動的棧幀的本地變量可以被操作數(shù)棧使用,當在這個棧幀中調(diào)用另一個方法,與之對應的棧幀又會被創(chuàng)建,新創(chuàng)建的棧幀壓入棧頂,變?yōu)楫斍暗幕顒訔?/p>

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

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


新聞名稱:JVM底層原理解析,在這個開源項目里講透了
URL網(wǎng)址:http://m.5511xx.com/article/dpiehgi.html