中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Jvm內存劃分為幾部分

發布時間:2021-07-13 09:20:52 來源:億速云 閱讀:154 作者:chen 欄目:大數據

這篇文章主要介紹“Java中Jvm內存劃分為幾部分”,在日常操作中,相信很多人在Java中Jvm內存劃分為幾部分問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中Jvm內存劃分為幾部分”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

在Java開發中我們不用考慮對內存的管理,是因為Jvm幫我們做了很多工作。Jvm為了滿足不同的用途將內存大體劃分了下面幾部分。如下圖:

Java中Jvm內存劃分為幾部分

下面我們詳細介紹一下每一塊的具體的功能。

  • 程序計數器:指的是當前線程所執行的字節碼的行號指示器。也就是說它的作用是通過這個計數器的值來選擇執行哪些字節碼指令的。我們知道在多任務的系統中雖然可以同時運行很多程序,但運行的本質是CPU給不同的程序分配執行時間來決定的。如果我們啟動了一個Java程序假如是單線程的,雖然程序啟動了但CPU此時卻可能執行其它程序,那么在CPU重新執行Java程序時,一定要知道這個程序上一次執行到了哪里,然后好繼續這個指定往下執行,這個計數器就是記錄程序的執行行號的。只不過不同的是,這個計數器不是針對程序來說的,而是真對線程來說的,因為每一個線程可能執行的邏輯是不一樣的,所以Jvm就要知道每一個線程在上一次的執行位置。所以程序計數器,每一個線程都是獨立的。如果線程執行的是一個Java方法,那么這個計數器 就記錄正在執行的虛擬機的字節碼指令地址。如果執行的方法是Native方法,那么這個計數器的值就為空。

  • 棧:主要存儲局部變量表、動態鏈接、方法出口等信息。并且棧也是每一個線程獨立存在的。

  • 堆:Jvm中管理內存的最大的地方。它的作用是存儲對象的實例。我們可以通過設置-Xmx和-Xms控制堆大小。堆也是Jvm中垃圾回收器回收的主要地方。并且堆內存是所有線程所共享的區域。

  • 方法區:和堆一樣也是所有線程共享的內存區域,不同是的是它主要存儲被虛擬機加載的類信息、常量、靜態變量等信息。

  • 運行時常量池:常量池存放在方法區中,主要保存編譯時生成的字面量和符號引用。因為常量池存放在方法區中,所以常量池也是對所有線程都共享的。

到此,關于“Java中Jvm內存劃分為幾部分”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彰化县| 金寨县| 兴城市| 蕉岭县| 龙门县| 云梦县| 油尖旺区| 吴江市| 德钦县| 上林县| 武乡县| 万山特区| 永丰县| 涪陵区| 东辽县| 涟源市| 台北县| 互助| 成都市| 玉山县| 都江堰市| 平安县| 建平县| 肥西县| 淳安县| 凌云县| 青田县| 五大连池市| 苏州市| 嘉定区| 兰坪| 澄江县| 丹巴县| 普宁市| 仙居县| 广丰县| 沙湾县| 湖北省| 东海县| 岗巴县| 呼伦贝尔市|