国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?

這篇具有很好參考價值的文章主要介紹了JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

首先我們需要先復(fù)習(xí)一下jvm的大致內(nèi)存圖,如下:

JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?

哦~ ,想起來了,原來方法區(qū)屬于jvm的運(yùn)行時數(shù)據(jù)區(qū),且作用就是存儲類信息、方法信息、常量池信息等靜態(tài)數(shù)據(jù)。

?(補(bǔ)充一下:運(yùn)行時數(shù)據(jù)區(qū)中的紅色是指方法區(qū)和堆是線程共享的,其他幾個都是線程私有的)

好的,回想起來方法區(qū)的相關(guān)概念后,我們進(jìn)入正題:

方法區(qū)是什么?

其實呢,我們經(jīng)常說的方法區(qū)只是java虛擬機(jī)規(guī)范的一個概念,就像是一個接口;那么接口總要有人實現(xiàn)吧,所以永久代和元空間就起著這樣的作用,它們實際上都是方法區(qū),是方法區(qū)在不同jdk版本的實現(xiàn)。

永久代是什么?

在jdk7以及jdk7之前,方法區(qū)被稱為永久代(PermGen)

此時永久代是 Java 堆(Java Heap)的一部分,用于存儲類信息、方法信息、常量池信息等靜態(tài)數(shù)據(jù)。

而 Java 堆是 JVM 中存儲對象實例和數(shù)組的內(nèi)存區(qū)域,也就是說,永久代是 Java 堆的一個子區(qū)域。

換句話說,永久代中存儲的靜態(tài)數(shù)據(jù)與堆中存儲的對象實例和數(shù)組是分開的,它們有不同的生命周期和分配方式。

但是,永久代和堆的大小是相互影響的,因為它們都使用了 JVM 堆內(nèi)存,因此它們的大小都受到 JVM 堆大小的限制。

對字符串常量池的一個擴(kuò)展:

注:jdk7之前字符串常量池也存放在永久代中,而jdk7時,脫離了永久代,存放于堆空間中。

?永久代的分布如下:

JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?

元空間是什么?

在jdk8時,徹底移除了永久代,方法區(qū)正式改名為元空間(Metaspace);??

首先需要確認(rèn)的是,它們的功能并沒有改變,仍然是用于存儲類信息、方法信息、常量池信息等靜態(tài)數(shù)據(jù)。

它們最大的區(qū)別就是永久代存在于Java堆中,它的大小受到 Java 虛擬機(jī)本身大小的限制;而元空間則是一塊本機(jī)內(nèi)存區(qū)域,和 JVM 內(nèi)存區(qū)域是分開的,?所以只受本機(jī)可用內(nèi)存的限制。

那么既然與永久代不同,那元空間就具有一些永久代沒有的優(yōu)點,如下:

  • 它不會導(dǎo)致 OutOfMemoryError 錯誤,因為元空間的大小可以動態(tài)調(diào)整。

  • 元空間使用本機(jī)內(nèi)存,而不是 JVM 堆內(nèi)存,這可以避免堆內(nèi)存的碎片化問題。

  • 元空間中的垃圾收集與堆中的垃圾收集是分離的,這可以避免應(yīng)用程序在運(yùn)行過程中因為進(jìn)行類加載和卸載而頻繁地觸發(fā) Full GC。

對字符串常量池的一個擴(kuò)展:

jdk8中,字符串常量池都存放在堆中,而它最開始的老東家永久代已經(jīng)搖身一變成為了元空間,并且脫離了java堆空間,存放在堆以外的本地內(nèi)存中。

元空間分布如下:

JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?

以上就是我對方法區(qū)這幾個概念的理解,如果有需要補(bǔ)充的地方,記得留言評論哦~

最后,其實這篇文章中我覺得大家最需要搞清楚的一句話就是:永久代和元空間是方法區(qū)不同jdk版本的實現(xiàn),搞清楚這三個概念,不記混淆了,就是很大的收獲了,大家就已經(jīng)很棒了~

JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-486983.html

到了這里,關(guān)于JVM中方法區(qū)、永久代、元空間詳解以及關(guān)系?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • “讓我們?yōu)槟闾砑淤~號”跳過方法以及后續(xù)操作

    “讓我們?yōu)槟闾砑淤~號”跳過方法以及后續(xù)操作

    按Ctrl+shift+f3就可以了 跳過之后別著急關(guān)機(jī),現(xiàn)在是管理員賬號,但微軟是默認(rèn)關(guān)閉管理員權(quán)限的 所以 1.打開cmd,查看自己電腦的用戶賬號 2.然后輸入以下代碼,顯示賬號信息 如果賬號被停用,“帳戶啟用”那一行會顯示“No” 如果賬號已啟用,“帳戶啟用”那一行會顯示“

    2024年02月12日
    瀏覽(16)
  • 詳解數(shù)據(jù)庫、Hive以及Hadoop之間的關(guān)系

    詳解數(shù)據(jù)庫、Hive以及Hadoop之間的關(guān)系

    數(shù)據(jù)庫是一個用于存儲和管理數(shù)據(jù)的系統(tǒng)。 數(shù)據(jù)庫管理系統(tǒng)(DBMS)是用于管理數(shù)據(jù)庫的軟件。 數(shù)據(jù)庫使用表和字段的結(jié)構(gòu)來組織和存儲數(shù)據(jù)。 關(guān)系型數(shù)據(jù)庫是最常見的數(shù)據(jù)庫類型,使用SQL(Structured Query Language)進(jìn)行數(shù)據(jù)操作和查詢。 數(shù)據(jù)庫管理系統(tǒng)(DBMS):數(shù)據(jù)庫管理系

    2024年03月15日
    瀏覽(27)
  • 【Java基礎(chǔ)篇】方法的使用(方法的使用以及形參實參的關(guān)系)

    【Java基礎(chǔ)篇】方法的使用(方法的使用以及形參實參的關(guān)系)

    作者簡介: 辭七七,目前大一,正在學(xué)習(xí)C/C++,Java,Python等 作者主頁: 七七的個人主頁 文章收錄專欄 :Java.SE,本專欄主要講解運(yùn)算符,程序邏輯控制,方法的使用,數(shù)組的使用,類和對象,繼承和多態(tài),抽象類和接口等內(nèi)容 歡迎大家點贊 ?? 收藏 ? 加關(guān)注哦!???? 方

    2024年02月08日
    瀏覽(23)
  • Java JVM 堆、棧、方法區(qū)詳解

    Java JVM 堆、棧、方法區(qū)詳解

    目錄 1. 棧 2. 堆 3. 方法區(qū) 4. 本地方法棧 5. 程序計數(shù)器 首先來看一下JVM運(yùn)行時數(shù)據(jù)區(qū)有哪些。 在介紹JVM棧之前,先了解一下? 棧幀 ?概念。 棧幀:一個棧幀隨著一個方法的調(diào)用開始而創(chuàng)建,這個方法調(diào)用完成而銷毀。棧幀內(nèi)存放者方法中的局部變量,操作數(shù)棧等數(shù)據(jù)。 Jav

    2024年01月19日
    瀏覽(34)
  • Java 設(shè)計者模式以及與Spring關(guān)系(六) 裝飾和模版方法模式

    Java 設(shè)計者模式以及與Spring關(guān)系(六) 裝飾和模版方法模式

    本文是個系列一次會出兩個設(shè)計者模式作用,如果有關(guān)聯(lián)就三個,除此外還會講解在spring中作用。 23設(shè)計者模式以及重點模式 我們都知道 設(shè)計者模式 有 3 類 23 種設(shè)計模式,標(biāo)紅是特別重要的設(shè)計者模式建議都會,而且熟讀于心,標(biāo)藍(lán)是指其次重要建議也要明白。 (1)創(chuàng)建

    2024年01月24日
    瀏覽(25)
  • python | 復(fù)雜網(wǎng)絡(luò):將關(guān)系對轉(zhuǎn)換為鄰接矩陣(常規(guī)方法以及pivot函數(shù))

    python | 復(fù)雜網(wǎng)絡(luò):將關(guān)系對轉(zhuǎn)換為鄰接矩陣(常規(guī)方法以及pivot函數(shù))

    復(fù)雜網(wǎng)絡(luò)中常常需要將得到的關(guān)系對(圖一)轉(zhuǎn)換為鄰接矩陣,并存儲為csv格式。本文將介紹兩方法來進(jìn)行處理:方法一是構(gòu)建數(shù)據(jù)框賦予值。方法二是利用pivot () 函數(shù)將一維表轉(zhuǎn)換為二維表。本文所采用的例子為 有向加權(quán)網(wǎng)絡(luò) 。 首先我們的原始數(shù)據(jù)為關(guān)系對(圖一):

    2023年04月08日
    瀏覽(18)
  • JVM 垃圾回收詳解之內(nèi)存分配和回收原則+死亡對象判斷方法

    JVM 垃圾回收詳解之內(nèi)存分配和回收原則+死亡對象判斷方法

    當(dāng)需要排查各種內(nèi)存溢出問題、當(dāng)垃圾收集成為系統(tǒng)達(dá)到更高并發(fā)的瓶頸時,我們就需要對這些“自動化”的技術(shù)實施必要的監(jiān)控和調(diào)節(jié)。 Java 的自動內(nèi)存管理主要是針對對象內(nèi)存的回收和對象內(nèi)存的分配。同時,Java 自動內(nèi)存管理最核心的功能是 堆 內(nèi)存中對象的分配與回收

    2023年04月19日
    瀏覽(40)
  • 【JVM】對String::intern()方法深入詳解(JDK7及以上)

    【JVM】對String::intern()方法深入詳解(JDK7及以上)

    String::intern()是一個本地方法,它的作用是如果字符串常量池中 已經(jīng)包含 一個等于此String對象的字符串,則返回代表池中這個字符串的String對象的引用;否則,會將此String對象包含的字符串添加到常量池中,并且返回此String對象的引用。----書上描述 已經(jīng)包含。。??赡懿惶?/p>

    2024年02月12日
    瀏覽(22)
  • Ubuntu20.04安裝Nvidia驅(qū)動——4060顯卡(黑屏解決方法)
1.首先禁用Nouveau(Ubuntu安裝顯卡驅(qū)動詳細(xì)步驟)

    Ubuntu20.04安裝Nvidia驅(qū)動——4060顯卡(黑屏解決方法) 1.首先禁用Nouveau(Ubuntu安裝顯卡驅(qū)動詳細(xì)步驟)

    如果按照正常方法安裝不成功(如無法連接第二屏幕,nvidia-smi無顯示),先嘗試在安裝后不管什么方法進(jìn)入桌面后在應(yīng)用程序中找到NVIDIA X Server Settings,在最后一項PRIME Profiles將NVIDIA On-Demand改為Performance Mode,重啟后正常,安裝深度學(xué)習(xí)環(huán)境也無問題,但是我的神州刷新率還

    2024年02月05日
    瀏覽(85)
  • WIN10/11 百度網(wǎng)盤“同步空間” 文件資源管理器 側(cè)邊欄/導(dǎo)航欄路徑 刪除方法 以及Office插件 徹底刪除方法

    WIN10/11 百度網(wǎng)盤“同步空間” 文件資源管理器 側(cè)邊欄/導(dǎo)航欄路徑 刪除方法 以及Office插件 徹底刪除方法

    徹底刪除百度網(wǎng)盤Office插件知乎鏈接,實測office更新仍會恢復(fù)插件; 最近每次更新百度網(wǎng)盤后,都會在資源管理器 導(dǎo)航欄 多出一個很煩人的路徑: 這對于用不到同步空間的用戶不勝其煩,下面說明刪除方法: WIN+R輸入regedit,確定后在注冊表最上面的地址欄輸入: 計算機(jī)

    2024年02月12日
    瀏覽(54)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包