黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Java并發編程解析 |JVM內存區域

Java并發編程解析 |JVM內存區域

來源:千鋒教育
發布人:qyf
時間: 2022-08-03 15:10:00 1659510600

1

  在Java虛擬機中,JVM 內存區域主要分為線程私有、線程共享、直接內存三個區域,具體詳情如下:

  線程私有(Theard Local Region): 數據區域生命周期與線程相同, 依賴用戶線程的啟動/結束 而 創建/銷毀(在Hotspot VM內, 每個線程都與操作系統的本地線程直接映射, 因此這部分內存區域的存/否跟隨本地線程的生/死對應)。

  線程共享(Theard Shared Region): 隨虛擬機的啟動/關閉而創建/銷毀

  直接內存(Direct Memory) : 非Java 虛擬機中JVM運行時數據區的一部分, 但也會被頻繁的使用: 在JDK 1.4引入的NIO提供了基于Channel與Buffer的IO方式, 它可以使用Native函數庫直接分配堆外內存, 然后使用DirectByteBuffer對象作為這塊內存的引用進行操作(詳見: Java I/O 擴展), 這樣就避免了在Java堆和Native堆中來回復制數據, 因此在一些場景中可以顯著提高性能。

  由此可見,在Java 虛擬機JVM運行時數據區中,【程序計數器、虛擬機棧、本地方法區】屬于線程私有區域,【 JAVA 堆、方法區】屬于線程共享區域,都需要JVM GC管理的,而直接內存不受JVM GC管理的。

  首先,對于線程私有區域中的【程序計數器、虛擬機棧、本地方法區】,主要詳情如下:

  程序計數器:一塊較小的內存空間, 是當前線程所執行的字節碼的行號指示器,每條線程都要有一個獨立的程序計數器,這類內存也稱為“線程私有”的內存。正在執行java方法的話,計數器記錄的是虛擬機字節碼指令的地址(當前指令的地址)。如果還是Native方法,則為空。這個內存區域是唯一一個在虛擬機中沒有規定任何OutOfMemoryError情況的區域。

  虛擬機棧:是描述java方法執行的內存模型,每個方法在執行的同時都會創建一個棧幀(Stack Frame)用于存儲局部變量表、操作數棧、動態鏈接、方法出口等信息。每一個方法從調用直至執行完成的過程,就對應著一個棧幀在虛擬機棧中入棧到出棧的過程。棧幀( Frame)是用來存儲數據和部分過程結果的數據結構,同時也被用來處理動態鏈接 (Dynamic Linking)、 方法返回值和異常分派( Dispatch Exception)。棧幀隨著方法調用而創建,隨著方法結束而銷毀——無論方法是正常完成還是異常完成(拋出了在方法內未被捕獲的異常)都算作方法結束。

  本地方法區:本地方法區和Java Stack作用類似, 區別是虛擬機棧為執行Java方法服務, 而本地方法棧則為Native方法服務, 如果一個VM實現使用C-linkage模型來支持Native調用, 那么該棧將會是一個C棧,但HotSpot VM直接就把本地方法棧和虛擬機棧合二為一。

  其次,對于線程共享區域中的【 JAVA 堆、方法區】,主要詳情如下:

  Java 堆(Java Heap): 是Java 虛擬機JVM運行時數據區中,被線程共享的一塊內存區域,創建的對象和數組都保存在Java堆內存中,也是垃圾收集器進行垃圾收集的最重要的內存區域。由于現代VM采用分代收集算法, 因此Java堆從GC的角度還可以細分為: 新生代(Eden區、From Survivor區和To Survivor區)和老年代。

  方法區(Method Area)/永久代(Permanent Generation):我們常說的永久代, 用于存儲被JVM加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據. HotSpot VM把GC分代收集擴展至方法區, 即使用Java堆的永久代來實現方法區, 這樣HotSpot的垃圾收集器就可以像管理Java堆一樣管理這部分內存, 而不必為方法區開發專門的內存管理器(永久帶的內存回收的主要目標是針對常量池的回收和類型的卸載, 因此收益一般很小)。運行時常量池(Runtime Constant Pool)是方法區的一部分。Class文件中除了有類的版本、字段、方法、接口等描述等信息外,還有一項信息是常量池(Constant Pool Table),用于存放編譯期生成的各種字面量和符號引用,這部分內容將在類加載后存放到方法區的運行時常量池中。 Java虛擬機對Class文件的每一部分(自然也包括常量池)的格式都有嚴格的規定,每一個字節用于存儲哪種數據都必須符合規范上的要求,這樣才會被虛擬機認可、裝載和執行。

  其中對于Java虛擬機JVM中的Java 堆主要分為【 新生代 、老年代 、永久代、元數據區】:

  新生代(Young Generation):用來存放新生的對象。一般占據堆的1/3空間。由于頻繁創建對象,所以新生代會頻繁觸發MinorGC進行垃圾回收。新生代又分為 Eden區、ServivorFrom、ServivorTo三個區。

  老年代(Old Generation):主要存放應用程序中生命周期長的內存對象。老年代的對象比較穩定,所以MajorGC不會頻繁執行。在進行MajorGC前一般都先進行了一次MinorGC,使得有新生代的對象晉身入老年代,導致空間不夠用時才觸發。當無法找到足夠大的連續空間分配給新創建的較大對象時也會提前觸發一次MajorGC進行垃圾回收騰出空間。MajorGC采用標記清除算法:首先掃描一次所有老年代,標記出存活的對象,然后回收沒有標記的對象。MajorGC的耗時比較長,因為要掃描再回收。MajorGC會產生內存碎片,為了減少內存損耗,我們一般需要進行合并或者標記出來方便下次直接分配。當老年代也滿了裝不下的時候,就會拋出OOM(Out of Memory)異常。

  永久代(Permanent Generation):指內存的永久保存區域,主要存放Class和Meta(元數據)的信息,Class在被加載的時候被放入永久區域,它和和存放實例的區域不同,GC不會在主程序運行期對永久區域進行清理。所以這也導致了永久代的區域會隨著加載的Class的增多而脹滿,最終拋出OOM異常。

  元數據區(Metaspace): 在Java8中,永久代已經被移除,被一個稱為“元數據區”(元空間)的區域所取代。元空間的本質和永久代類似,元空間與永久代之間最大的區別在于:元空間并不在虛擬機中,而是使用本地內存。因此,默認情況下,元空間的大小僅受本地內存限制。類的元數據放入 native memory, 字符串池和類的靜態變量放入java堆中,這樣可以加載多少類的元數據就不再由MaxPermSize控制, 而由系統的實際可用空間來控制。

  更多關于“java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
精品视频在线看| 欧美激情影院| 久久国产精品自线拍免费| 天天做日日干| 免费毛片基地| 亚洲女初尝黑人巨高清在线观看| 日韩欧美一及在线播放| 天天做人人爱夜夜爽2020 | 在线观看成人网| 国产麻豆精品hdvideoss| 美女免费毛片| 国产一区二区精品| 国产综合91天堂亚洲国产| 日本伦理黄色大片在线观看网站| 精品国产一区二区三区久| 九九免费高清在线观看视频| 精品国产一区二区三区精东影业 | 国产a视频精品免费观看| 国产a视频精品免费观看| 亚洲精品影院| 青青久在线视频| 国产网站免费视频| 精品视频在线看| 国产成人女人在线视频观看| 国产a视频精品免费观看| 成人免费观看的视频黄页| 91麻豆精品国产自产在线| 欧美激情一区二区三区在线 | 精品国产亚洲一区二区三区| 日韩中文字幕一区| 韩国妈妈的朋友在线播放| 日韩在线观看免费| 日本在线播放一区| 美国一区二区三区| 999精品在线| 精品国产亚洲人成在线| 欧美激情一区二区三区视频| 精品国产香蕉伊思人在线又爽又黄| 毛片高清| 午夜家庭影院| 精品视频在线观看视频免费视频| 国产不卡在线看| 日韩专区第一页| 黄视频网站在线看| 91麻豆国产级在线| 国产伦久视频免费观看 视频| 日本特黄一级| 香蕉视频久久| 国产伦精品一区二区三区无广告 | 精品国产一区二区三区久久久狼| 亚洲精品久久久中文字| 国产国语对白一级毛片| 精品国产一区二区三区久久久蜜臀| 精品久久久久久中文字幕2017| 欧美激情影院| 国产成人啪精品| 日韩中文字幕在线观看视频| 国产精品免费精品自在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美激情一区二区三区视频| 国产国语对白一级毛片| 国产精品免费精品自在线观看| 国产91精品一区二区| 色综合久久天天综合观看| 欧美a级片免费看| 欧美激情伊人| 国产麻豆精品| 韩国三级香港三级日本三级la| 四虎论坛| 午夜欧美成人香蕉剧场| 国产成人精品综合| 欧美大片一区| 免费的黄色小视频| 国产一级生活片| 黄色福利| 免费的黄视频| 久久精品免视看国产明星| 成人影院久久久久久影院| 夜夜操天天爽| 美女被草网站| 欧美激情一区二区三区视频| 成人a大片高清在线观看| 四虎精品在线观看| 精品国产一区二区三区精东影业| 国产伦理精品| 精品视频在线观看免费| 999久久66久6只有精品| 国产麻豆精品hdvideoss| 日本在线www| 久久99中文字幕| 亚洲女初尝黑人巨高清在线观看| 韩国毛片基地| 精品国产一区二区三区精东影业| 人人干人人草| 四虎论坛| 国产极品白嫩美女在线观看看| 中文字幕一区二区三区 精品| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产一区二区三区久久久蜜臀| 久久精品人人做人人爽97| 成人高清免费| 国产成人啪精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美激情一区二区三区在线| 成人影院久久久久久影院| 成人免费一级毛片在线播放视频| 成人影视在线播放| 九九精品影院| 九九热国产视频| 美女免费精品高清毛片在线视 | 日韩欧美一及在线播放| 成人高清免费| 二级片在线观看| 欧美激情一区二区三区视频 | 99色视频在线观看| 毛片电影网| 久久久久久久久综合影视网| 精品国产亚一区二区三区| 国产一区二区精品| 日韩中文字幕一区| 成人免费观看的视频黄页| 尤物视频网站在线观看| 尤物视频网站在线| 美女免费精品高清毛片在线视 | 亚洲女人国产香蕉久久精品| 国产视频久久久| 国产a视频| 黄色福利片| 韩国三级视频网站| 精品视频在线观看一区二区三区| 国产伦理精品| 欧美另类videosbestsex视频| 日韩中文字幕一区| 美女免费毛片| 久久国产影院| 亚洲第一页乱| 日韩中文字幕一区二区不卡| 色综合久久天天综合观看| 久久精品欧美一区二区| 国产福利免费视频| 欧美日本免费| 色综合久久天天综合绕观看| 深夜做爰性大片中文| 亚洲爆爽| 亚久久伊人精品青青草原2020| 日韩在线观看网站| 国产美女在线观看| 可以免费看污视频的网站| 亚洲天堂免费观看| 精品国产三级a∨在线观看| 91麻豆爱豆果冻天美星空| 国产麻豆精品| 成人在免费观看视频国产| 在线观看成人网| 精品视频在线看| 午夜激情视频在线观看| 天天做日日爱夜夜爽| 精品视频免费看| 国产高清视频免费| 国产福利免费视频| 亚洲爆爽| 久久精品免视看国产明星| 亚洲第一页色| 青青久久网| 成人高清免费| 欧美电影免费看大全| 九九精品久久| 国产精品1024在线永久免费| 一级女性全黄生活片免费| 国产91精品一区二区| 国产伦理精品| 韩国妈妈的朋友在线播放| 欧美激情在线精品video| 色综合久久久久综合体桃花网| 91麻豆精品国产高清在线| 四虎影视库国产精品一区| 国产伦理精品| a级黄色毛片免费播放视频| 国产一区精品| 香蕉视频久久| 国产极品精频在线观看| 亚洲精品久久久中文字| 九九干| 亚欧乱色一区二区三区| 久久国产精品只做精品| 亚洲女人国产香蕉久久精品| 九九久久国产精品| 国产一区国产二区国产三区| 麻豆系列 在线视频| 免费一级片在线观看| 欧美国产日韩一区二区三区| 久久99欧美| 久久国产一久久高清| 午夜久久网| 日韩在线观看视频网站| 91麻豆精品国产高清在线| 欧美大片毛片aaa免费看| 青青青草视频在线观看| 日本特黄一级| 精品视频在线观看视频免费视频|