0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java:JVM虛擬機的入門知識

如意 ? 來源:百家號 ? 作者: 愿編程是詩 ? 2020-07-01 11:43 ? 次閱讀

Java開發(fā)現(xiàn)在面試越來越難了,進大廠必備的JVM、多線程高并發(fā)這都是最基礎(chǔ)的知識了,今天我們一起來學(xué)習(xí)Java虛擬機入門。

運行時數(shù)據(jù)區(qū)域

Java虛擬機在執(zhí)行Java程序的過程中會把它所管理的內(nèi)存劃分為若干個不同的數(shù)據(jù)區(qū)域,主要有這么幾個區(qū)域,并且對每個區(qū)域進行介紹。

Java:JVM虛擬機的入門知識

程序計數(shù)器

程序計數(shù)器(Program Counter Register)它是一塊較小的內(nèi)存空間,它是記錄當(dāng)前線程所執(zhí)行到的字節(jié)碼的行號。因為由于Java虛擬機的多線程是通過線程輪流切換、以及分配處理器執(zhí)行時間的方式來實現(xiàn)的,一個處理器都只會執(zhí)行一條線程中的指令。為了讓線程切換后能夠恢復(fù)到正常的執(zhí)行位置,所以每一條線程都有一個獨立的程序計數(shù)器,這樣線程之間計數(shù)器互不影響。

Java:JVM虛擬機的入門知識

Java虛擬機棧

和程序計數(shù)器一樣是線程私有,它的生命周期是與線程相同的。Java虛擬機是Java執(zhí)行方法的內(nèi)存模型,在每個方法執(zhí)行時都會同步創(chuàng)建一個棧幀(Stack Frame),主要是用來存儲:局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。

本地方法棧

本地方法棧就是為虛擬機使用到的本地(Native) 方法服務(wù)的。

Java堆(Heap)

Java堆是虛擬機所管理的內(nèi)存中最大的一塊,是所有線程共享的一塊區(qū)域,唯一的目的就是存放對象實例,并且是“幾乎”所有的對象的實例都是在“Java堆”分配內(nèi)存的。

同時Java堆也是垃圾收集器管理的內(nèi)存區(qū)域,也稱之為“GC堆”。由于現(xiàn)在基本采用分代回收垃圾器算法,所以Java堆又可以分為:新生代、老年代。

法區(qū)

方法區(qū)也是線程共享的內(nèi)存區(qū)域,主要存儲已被虛擬機加載的類型信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼緩存等數(shù)據(jù)。

很多Java程序員都習(xí)慣在 HotSpot虛擬機上開發(fā)、部署程序,很多人都更愿意把方法區(qū)稱呼為“永久代“。到了 JDK 8,終于完全廢棄了永久代的概念,改用與JRockit、J9一樣在本地內(nèi)存中實現(xiàn)的元空間(Metaspace)來代替了。注意:這區(qū)域的內(nèi)存回收目標(biāo)主要是針對常量池的回收和對類型的卸載。

補充

運行時常量池:它是方法區(qū)的一部分,用于存放編譯期生成的各種字面量與符號引用,這部分內(nèi)容將在類加載后存放到方法區(qū)的運行時常量池中。對于初學(xué)者想深入JVM虛擬機原理,國內(nèi)非常不錯的深入理解Java虛擬機第三版這本,值得Java程序員看的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104751
  • JVM
    JVM
    +關(guān)注

    關(guān)注

    0

    文章

    158

    瀏覽量

    12226
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    917

    瀏覽量

    28196
收藏 人收藏

    評論

    相關(guān)推薦

    RK3588 SDK入門虛擬機配置篇

    前言:接上期,我們已經(jīng)搭建好了RK3588的Ubuntu虛擬機,在正式使用虛擬機之前,還需要對虛擬機做一些配置;本篇內(nèi)容將會對Ubuntu虛擬機進行網(wǎng)絡(luò)配置、apt指令指定源和NTP服
    的頭像 發(fā)表于 11-15 01:06 ?345次閱讀
    RK3588 SDK<b class='flag-5'>入門</b>之<b class='flag-5'>虛擬機</b>配置篇

    虛擬化數(shù)據(jù)恢復(fù)—XenServer虛擬機數(shù)據(jù)恢復(fù)案例

    Server操作系統(tǒng)虛擬機,該虛擬機有2塊虛擬磁盤(系統(tǒng)盤+數(shù)據(jù)盤),當(dāng)作網(wǎng)站服務(wù)器使用。 服務(wù)器虛擬化故障: XenServer虛擬機
    的頭像 發(fā)表于 11-08 10:32 ?148次閱讀
    <b class='flag-5'>虛擬</b>化數(shù)據(jù)恢復(fù)—XenServer<b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)——Hyper-V虛擬機數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)環(huán)境: Windows Server操作系統(tǒng)服務(wù)器上部署Hyper-V虛擬機環(huán)境。虛擬機的硬盤文件和配置文件存放在一臺存儲中,該存儲上有一組由4塊硬盤組建的raid5陣列,除此之外
    的頭像 發(fā)表于 10-25 09:26 ?199次閱讀
    <b class='flag-5'>虛擬</b>化數(shù)據(jù)恢復(fù)——Hyper-V<b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復(fù)案例

    虛擬機數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致XenServer虛擬機不可用的數(shù)據(jù)恢復(fù)案例

    虛擬機數(shù)據(jù)恢復(fù)環(huán)境: 某品牌服務(wù)器通過同品牌某型號的RAID卡,將4塊STAT硬盤為一組RAID10陣列。上層部署XenServer虛擬化平臺,虛擬機安裝Windows Server系統(tǒng),每臺
    的頭像 發(fā)表于 10-21 14:17 ?200次閱讀
    <b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致XenServer<b class='flag-5'>虛擬機</b>不可用的數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致VMware虛擬機文件丟失的數(shù)據(jù)恢復(fù)案例

    某品牌服務(wù)器(部署VMware EXSI虛擬機)+同品牌存儲(存放虛擬機文件)。
    的頭像 發(fā)表于 09-14 17:35 ?484次閱讀
    <b class='flag-5'>虛擬</b>化數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致VMware<b class='flag-5'>虛擬機</b>文件丟失的數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)—EXSI虛擬機誤還原快照如何恢復(fù)數(shù)據(jù)?

    虛擬化技術(shù)原理是將硬件虛擬化供不同的虛擬機使用,一臺物理機上可以有多臺虛擬機。人為誤操作或者物理故障會導(dǎo)致上層
    的頭像 發(fā)表于 09-09 11:56 ?377次閱讀
    <b class='flag-5'>虛擬</b>化數(shù)據(jù)恢復(fù)—EXSI<b class='flag-5'>虛擬機</b>誤還原快照如何恢復(fù)數(shù)據(jù)?

    什么是虛擬機?什么是虛擬化?

    在日新月異的科技世界中,虛擬化技術(shù)如同一座橋梁,連接著現(xiàn)實與數(shù)字的鴻溝,為我們打開了全新的計算維度。虛擬機,這一概念,自其誕生以來,就以其獨特的魅力和強大的功能,深深地影響了軟件開發(fā)、系統(tǒng)測試和云計算等多個領(lǐng)域。即使目前你還不了解它的應(yīng)用,你應(yīng)該也聽過
    的頭像 發(fā)表于 09-04 14:55 ?946次閱讀

    從原理聊JVM(一):染色標(biāo)記和垃圾回收算法

    更好地優(yōu)化自己的代碼,并解決一些潛在的性能問題。 本文及后續(xù)文章將從原理聊起,對JVM的內(nèi)存分配、GC、編譯等知識進行分析和總結(jié)。 1 JVM運行時內(nèi)存劃分 1.1 運行時數(shù)據(jù)區(qū)域 ?? ? ? 方法區(qū) 屬于共享內(nèi)存區(qū)域,存儲已
    的頭像 發(fā)表于 08-20 15:25 ?239次閱讀
    從原理聊<b class='flag-5'>JVM</b>(一):染色標(biāo)記和垃圾回收算法

    創(chuàng)建ubuntu虛擬機

    英文的習(xí)慣。創(chuàng)建ubuntu虛擬機打開VMware軟件,點擊創(chuàng)建新的虛擬機。進入以下界面:選擇自定義,點擊“下一步”。選擇對應(yīng)VMware版本的兼容性,版本可在幫助->關(guān)于VMware
    發(fā)表于 08-10 14:15

    虛擬機數(shù)據(jù)恢復(fù)—KVM虛擬機被誤刪除的數(shù)據(jù)恢復(fù)案例

    虛擬機數(shù)據(jù)恢復(fù)環(huán)境: Linux操作系統(tǒng)服務(wù)器,EXT4文件系統(tǒng)。服務(wù)器中有數(shù)臺KVM虛擬機。 虛擬機1:主數(shù)據(jù)庫服務(wù)器 虛擬磁盤:系統(tǒng)盤(qcow2)+數(shù)據(jù)盤(raw)
    的頭像 發(fā)表于 08-07 13:33 ?458次閱讀
    <b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復(fù)—KVM<b class='flag-5'>虛擬機</b>被誤刪除的數(shù)據(jù)恢復(fù)案例

    什么是虛擬機虛擬機真的那么好用嗎?

    在日新月異的科技世界中,虛擬化技術(shù)如同一座橋梁,連接著現(xiàn)實與數(shù)字的鴻溝,為我們打開了全新的計算維度。虛擬機,這一概念,自其誕生以來,就以其獨特的魅力和強大的功能,深深地影響了軟件開發(fā)、系統(tǒng)測試和云
    的頭像 發(fā)表于 07-06 08:05 ?463次閱讀
    什么是<b class='flag-5'>虛擬機</b>?<b class='flag-5'>虛擬機</b>真的那么好用嗎?

    虛擬化數(shù)據(jù)恢復(fù)—虛擬機誤還原快照的數(shù)據(jù)恢復(fù)案例

    有一臺虛擬機是由物理遷移到ESXI上面的,遷移完成后為該虛擬機做了一個快照。虛擬機上運行了一個SQL Server數(shù)據(jù)庫,記錄了5年左右的數(shù)據(jù)。 該ESXI上共有二十幾臺
    的頭像 發(fā)表于 05-11 11:07 ?560次閱讀

    虛擬機的ip地址和主機一樣嗎

    虛擬機的ip地址和主機一樣嗎? 虛擬機的IP地址和主機的IP地址通常不相同。虛擬機是在主機上通過虛擬化技術(shù)創(chuàng)建的虛擬化實例,它可以在同一臺物
    的頭像 發(fā)表于 03-26 15:34 ?5299次閱讀

    虛擬機數(shù)據(jù)恢復(fù)-虛擬機還原快照原理和誤還原快照的數(shù)據(jù)恢復(fù)方案

    由一臺物理服務(wù)器遷移到ESXI上的虛擬機虛擬機遷移完成后做了一個快照,該ESXI上面一共運行了數(shù)十臺虛擬機。某天工作人員不小心將快照進行了還原,虛擬機內(nèi)的數(shù)據(jù)還原到了數(shù)年前剛遷移過來
    的頭像 發(fā)表于 02-27 11:54 ?1007次閱讀
    <b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復(fù)-<b class='flag-5'>虛擬機</b>還原快照原理和誤還原快照的數(shù)據(jù)恢復(fù)方案

    VMware虛擬機的三種網(wǎng)絡(luò)模式

    VMware虛擬機的三種網(wǎng)絡(luò)模式 VMware是一種廣泛使用的虛擬機軟件,可以創(chuàng)建和管理多個虛擬機。在使用VMware虛擬機時,網(wǎng)絡(luò)設(shè)置非常重要,因為它決定了
    的頭像 發(fā)表于 02-04 11:17 ?2017次閱讀