91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Java:JVM虛擬機(jī)的入門知識(shí)

如意 ? 來(lái)源:百家號(hào) ? 作者: 愿編程是詩(shī) ? 2020-07-01 11:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

Java:JVM虛擬機(jī)的入門知識(shí)

程序計(jì)數(shù)器

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

Java:JVM虛擬機(jī)的入門知識(shí)

Java虛擬機(jī)棧

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

本地方法棧

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

Java堆(Heap)

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

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

法區(qū)

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

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

補(bǔ)充

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

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

    關(guān)注

    20

    文章

    3001

    瀏覽量

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

    關(guān)注

    0

    文章

    161

    瀏覽量

    13037
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    972

    瀏覽量

    30471
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    虛擬機(jī)數(shù)據(jù)恢復(fù)—虛擬機(jī)vmdk文件被刪除的數(shù)據(jù)恢復(fù)案例

    本次數(shù)據(jù)恢復(fù)涉及一臺(tái)R710系列服務(wù)器和一臺(tái)MD3200系列存儲(chǔ),上層是ESXI5.5版本的虛擬機(jī)虛擬文件。因客戶機(jī)房非正常斷電,虛擬機(jī)無(wú)法啟動(dòng)。機(jī)房管理員檢查發(fā)現(xiàn)虛擬機(jī)配置文件丟失
    的頭像 發(fā)表于 02-10 17:05 ?193次閱讀
    <b class='flag-5'>虛擬機(jī)</b>數(shù)據(jù)恢復(fù)—<b class='flag-5'>虛擬機(jī)</b>vmdk文件被刪除的數(shù)據(jù)恢復(fù)案例

    Arm架構(gòu)助力Azure Cobalt 100虛擬機(jī)工作負(fù)載性能提升

    自從微軟推出基于 Arm 架構(gòu)的 Azure Cobalt 100 虛擬機(jī) (VM) 以來(lái),已有眾多客戶選擇這款新實(shí)例運(yùn)行各類用例。目前,Cobalt 100 虛擬機(jī)已在全球微軟 Azure 云
    的頭像 發(fā)表于 12-15 14:42 ?655次閱讀
    Arm架構(gòu)助力Azure Cobalt 100<b class='flag-5'>虛擬機(jī)</b>工作負(fù)載性能提升

    虛擬機(jī)數(shù)據(jù)恢復(fù)—異常斷電致ESXI存儲(chǔ)失聯(lián)?這份實(shí)戰(zhàn)數(shù)據(jù)恢復(fù)案例請(qǐng)收好

    服務(wù)器存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)服務(wù)器上部署esxi虛擬化平臺(tái)。上層采用通過(guò)FreeNAS構(gòu)建的iSCSI方式FCSAN功能,F(xiàn)reeNAS層采用UFS2文件系統(tǒng)。 esxi虛擬化系統(tǒng)有3臺(tái)虛擬機(jī)
    的頭像 發(fā)表于 11-11 14:11 ?260次閱讀

    Arm Neoverse CPU上大代碼量Java應(yīng)用的性能測(cè)試

    Java 虛擬機(jī) (JVM) 內(nèi)執(zhí)行。JVM 必須先通過(guò)解釋器或即時(shí) (JIT) 編譯器將字節(jié)碼轉(zhuǎn)換為機(jī)器碼,而運(yùn)行時(shí)生成的機(jī)器碼對(duì) Java
    的頭像 發(fā)表于 11-05 11:25 ?755次閱讀
    Arm Neoverse CPU上大代碼量<b class='flag-5'>Java</b>應(yīng)用的性能測(cè)試

    蜂鳥e203在虛擬機(jī)unbuntu上面驗(yàn)證時(shí)報(bào)錯(cuò)的可能原因及解決措施

    內(nèi)容:蜂鳥e203在虛擬機(jī)unbuntu上面驗(yàn)證時(shí)報(bào)錯(cuò)的可能原因 現(xiàn)象: 解決措施: 蜂鳥e203在虛擬機(jī)unbuntu上面驗(yàn)證時(shí)不要重復(fù)輸入命令: make install make compile SIM=iverilog 只需輸入一遍
    發(fā)表于 10-24 08:27

    搭建自己的ubuntu系統(tǒng)之創(chuàng)建ubuntu虛擬機(jī)

    打開VMware軟件,點(diǎn)擊創(chuàng)建新的虛擬機(jī)。進(jìn)入以下界面:選擇自定義,點(diǎn)擊“下一步”。選擇對(duì)應(yīng)VMware版本的兼容性,版本可在幫助-&gt;關(guān)于VMware Workstation中
    發(fā)表于 09-25 09:39

    中軟國(guó)際鴻云虛擬機(jī)安裝指南

    鴻蒙電腦作為新一代分布式計(jì)算平臺(tái),憑借其卓越的多端協(xié)同能力和智能化特性,為高效辦公提供了新選擇。針對(duì)專業(yè)軟件兼容性這一核心痛點(diǎn),中軟國(guó)際的鴻云虛擬機(jī)解決方案提供了務(wù)實(shí)的技術(shù)路徑。作為專為鴻蒙生態(tài)打造
    的頭像 發(fā)表于 06-23 16:31 ?4202次閱讀

    迅為RK3588開發(fā)板掛載Windows以及虛擬機(jī)Ubuntu測(cè)試

    使用以下命令測(cè)試,如下圖所示: 電腦端 IP 為 192.168.1.96 共享文件夾為 share-tian 虛擬機(jī) Ubuntu 端 IP 為 192.168.1.6 共享文件夾為 samba
    發(fā)表于 06-19 10:32

    TECS OpenStack資源池虛擬機(jī)網(wǎng)絡(luò)二層地址無(wú)法互通的問(wèn)題處理

    某運(yùn)營(yíng)商TECS OpenStack使用主機(jī)overlay SDN方案組網(wǎng),運(yùn)維人員在創(chuàng)建虛擬機(jī)測(cè)試虛擬機(jī)網(wǎng)絡(luò)狀態(tài)時(shí)發(fā)現(xiàn)問(wèn)題:在其中一臺(tái)主機(jī)上創(chuàng)建兩臺(tái)同網(wǎng)段虛擬機(jī)虛擬機(jī)之間二層地址無(wú)
    的頭像 發(fā)表于 06-12 09:28 ?885次閱讀
    TECS OpenStack資源池<b class='flag-5'>虛擬機(jī)</b>網(wǎng)絡(luò)二層地址無(wú)法互通的問(wèn)題處理

    虛擬化數(shù)據(jù)恢復(fù)—XenServer虛擬化平臺(tái)上VPS不可用的數(shù)據(jù)恢復(fù)案例

    虛擬化環(huán)境: 某品牌720服務(wù)器中有一組通過(guò)型號(hào)為H710P的RAID卡+4塊STAT硬盤組建的RAID10,上層部署Xen Server服務(wù)器虛擬化平臺(tái)。虛擬機(jī)安裝的Windows Server
    的頭像 發(fā)表于 05-30 11:35 ?691次閱讀
    <b class='flag-5'>虛擬</b>化數(shù)據(jù)恢復(fù)—XenServer<b class='flag-5'>虛擬</b>化平臺(tái)上VPS不可用的數(shù)據(jù)恢復(fù)案例

    Vsan數(shù)據(jù)恢復(fù)——Vsan分布式文件系統(tǒng)上虛擬機(jī)不可用的數(shù)據(jù)恢復(fù)

    一臺(tái)采用VsSAN分布式文件系統(tǒng)的存儲(chǔ)設(shè)備由于未知原因關(guān)機(jī)重啟。管理員發(fā)現(xiàn)上層的虛擬機(jī)不可用,存儲(chǔ)內(nèi)的數(shù)據(jù)丟失。
    的頭像 發(fā)表于 05-15 17:42 ?574次閱讀
    Vsan數(shù)據(jù)恢復(fù)——Vsan分布式文件系統(tǒng)上<b class='flag-5'>虛擬機(jī)</b>不可用的數(shù)據(jù)恢復(fù)

    分布式存儲(chǔ)數(shù)據(jù)恢復(fù)—虛擬機(jī)上hbase和hive數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

    分布式存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境: 16臺(tái)某品牌R730xd服務(wù)器節(jié)點(diǎn),每臺(tái)服務(wù)器節(jié)點(diǎn)上有數(shù)臺(tái)虛擬機(jī)。 虛擬機(jī)上部署Hbase和Hive數(shù)據(jù)庫(kù)。 分布式存儲(chǔ)故障: 數(shù)據(jù)庫(kù)底層文件被誤刪除,數(shù)據(jù)庫(kù)不能使用。要求恢復(fù)hbase和hive數(shù)據(jù)庫(kù)。
    的頭像 發(fā)表于 04-17 11:05 ?721次閱讀

    Linux內(nèi)核編譯失???移動(dòng)硬盤和虛擬機(jī)的那些事兒

    Linux開發(fā)中,編譯內(nèi)核是一項(xiàng)常見任務(wù),但不少開發(fā)者在移動(dòng)硬盤或虛擬機(jī)環(huán)境下嘗試時(shí)會(huì)遭遇失敗。本文將簡(jiǎn)要探討這些問(wèn)題的成因,并介紹一些虛擬機(jī)使用技巧,幫助大家更好地應(yīng)對(duì)相關(guān)問(wèn)題。在移動(dòng)硬盤里編譯
    的頭像 發(fā)表于 04-11 11:36 ?994次閱讀
    Linux內(nèi)核編譯失???移動(dòng)硬盤和<b class='flag-5'>虛擬機(jī)</b>的那些事兒

    Linux 5.15.52_2.1.0 (Yocto) 是否支持Xen虛擬機(jī)管理程序?

    我正在使用 Yocto 和 i.MX8QM 板,我對(duì) Xen 支持有幾個(gè)問(wèn)題: Linux 5.15.52_2.1.0 (Yocto) 是否支持 Xen 虛擬機(jī)管理程序? If yes
    發(fā)表于 03-27 06:17

    【貝啟科技BQ3568HM開源鴻蒙開發(fā)板深度試用報(bào)告】3-ubuntu18.04虛擬機(jī)開發(fā)環(huán)境搭建

    虛擬機(jī)選擇 為了方便開發(fā),我選擇了采用虛擬機(jī)安裝Ubuntu系統(tǒng)。 我的虛擬機(jī)版本如下: Ubuntu18.04系統(tǒng)安裝 根據(jù)官方建議,我選擇了這個(gè)版本的系統(tǒng)。 話不多說(shuō),直接安裝: 快捷鍵
    發(fā)表于 03-18 11:28