日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

每日一问:你了解 Java 虚拟机结构么?

發(fā)布時(shí)間:2025/7/25 java 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每日一问:你了解 Java 虚拟机结构么? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對于從事 C/C++ 程序員開發(fā)的小伙伴來說,在內(nèi)存管理領(lǐng)域非常頭疼,因?yàn)樗麄兛偸切枰獙γ恳粋€(gè) new 操作去寫配對的 delete/free 代碼。而對于我們 Android 乃至 Java 程序員,卻總是會因?yàn)樘摂M機(jī)的自動(dòng)內(nèi)存管理機(jī)制而忽視內(nèi)存管理的重要性。

經(jīng)過前面簡短的幾篇純 Android 問題,我想再給大家摻雜一點(diǎn)可能平時(shí)你并沒有太多關(guān)注的東西。其實(shí)寫這個(gè)的時(shí)候我相當(dāng)糾結(jié),因?yàn)閷τ诖蠖鄶?shù) Android 開發(fā)來說,他們會更加注重實(shí)質(zhì)性的技能提升,而不是我今天將要講的 Java 虛擬機(jī)結(jié)構(gòu)。

但經(jīng)過一系列的思想斗爭,我還是打算把這個(gè)講到底,為了不浪費(fèi)大家太多的時(shí)間,我依然遵從「每日一問」系列的初衷,我們盡可能地精簡文字,讓每一個(gè)小知識點(diǎn)閱讀時(shí)間都控制在 5 分鐘以下。

Java 虛擬機(jī)結(jié)構(gòu)作為一個(gè)面試高頻考點(diǎn),你完全可以當(dāng)做你在復(fù)習(xí)面試知識,這樣興許你的學(xué)習(xí)的心態(tài)會好一些。

我還是不得不去網(wǎng)上摘下了這個(gè)圖,我想唯有用這張圖結(jié)合講解起來才更加的通俗易懂。

Java 虛擬機(jī)內(nèi)存區(qū)域確實(shí)就由這幾部分構(gòu)成:方法區(qū)、虛擬機(jī)棧、本地方法棧、堆、程序計(jì)數(shù)器。

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

程序計(jì)數(shù)器是一個(gè)較小的內(nèi)存空間,線程私有,它是唯一一個(gè)在 Java 虛擬機(jī)規(guī)范中沒有規(guī)定任何 OOM 情況的區(qū)域。

虛擬機(jī)棧

虛擬機(jī)棧和程序計(jì)數(shù)器一樣,同樣為線程所私有,并且生命周期和線程相同。。每個(gè)棧中的數(shù)據(jù)都是私有的,其他棧不允許訪問,每個(gè)方法被執(zhí)行的時(shí)候都會同時(shí)創(chuàng)建一個(gè)棧幀,每一個(gè)方法被調(diào)用直至執(zhí)行完成的過程,就對應(yīng)著一個(gè)棧幀在虛擬機(jī)棧從入棧到出棧的過程。虛擬機(jī)棧主要存放各種編譯期可知的基本數(shù)據(jù)類型和對象的引用。

本地方法棧

本地方法棧與虛擬機(jī)棧發(fā)揮的作用非常相似,其主要區(qū)別是虛擬機(jī)棧為虛擬機(jī)執(zhí)行 Java 方法(也就是字節(jié)碼)服務(wù),而本地房發(fā)展則是為虛擬機(jī)用到的 Native 方法服務(wù)。

Java 堆

Java 堆是垃圾收集器管理的主要區(qū)域,主要用于存放對象的實(shí)例,自然而然就成了 Java 虛擬機(jī)中管理內(nèi)存最大的一塊,并且它可以處于物理上不連續(xù)的內(nèi)存空間中,Java 堆在虛擬機(jī)啟動(dòng)的時(shí)候就進(jìn)行創(chuàng)建,并被所有線程所共享。

方法區(qū)

方法區(qū)和 Java 堆一樣,是各個(gè)線程共享的內(nèi)存區(qū)域,主要存儲已被虛擬機(jī)加載的類信息、常量、靜態(tài)變量、即時(shí)編譯器編譯后的代碼等數(shù)據(jù)。這個(gè)區(qū)域的內(nèi)存回收目標(biāo)主要是針對常量池的回收和對類型的寫在,較少發(fā)生垃圾收集行為。

上面對 Java 虛擬機(jī)結(jié)構(gòu)進(jìn)行了非常精簡的講解,大家可還對此清晰了一些?如果還是沒有太透徹其實(shí)沒有關(guān)系,多回顧幾遍,最好能自己畫一個(gè)圖,在一邊進(jìn)行理解。明天我們再來講一講我們另外一個(gè)面試非常高頻的考點(diǎn):垃圾回收算法,一起來探究 Java 虛擬機(jī)到底是怎么來回收一個(gè)無用的對象的。

轉(zhuǎn)載于:https://www.cnblogs.com/liushilin/p/11014168.html

總結(jié)

以上是生活随笔為你收集整理的每日一问:你了解 Java 虚拟机结构么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。