Java知識分享網 - 輕松學習從此開始!????

Java知識分享網

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
        

實戰springboot+CAS單點登錄課程(免費領取)

SpringBoot打造全棧在線教育平臺實戰課程

畢設代做論文包查重聯系人QQ:1982956321畢設大神 畢設代做論文包查重

66套java實戰課程無套路領取

Java1234 VIP課程

領取微信掃碼登錄Java實現視頻教程

Java1234至尊VIP(特價活動)

2020年Jvm內存面試問題總結 PDF 下載


分享到:
時間:2020-11-07 11:19來源:http://www.nukdnfhq.buzz 作者:轉載  侵權舉報
2020年Jvm內存面試問題總結 PDF 下載
失效鏈接處理
 2020年Jvm內存面試問題總結  PDF 下載


本站整理下載:
提取碼:kd62 
 
 
相關截圖:
 
主要內容:

Jvm內存面試問題總結(2020)
●jvm中有哪幾塊內存?
●堆內存
●放對象
●所有線程共享
●棧內存
●放代碼的線程。
●線程獨有,自由有自己的棧內存。
●永久代(java8之前)
●放我們的類
●放常量池
●線程計數器
●本地方法棧
●放動態庫
●堆內存是如何分配的?
●年輕代(默認情況下eden區和s1 / s2區的比例是 8:1:1)
●eden區
●Survivor 區(兩個Survivor區大小完全一樣)
●Survivor  1 區
●Survivor   2 區
●年老代(默認和年輕代一樣)
●java8之后對內存分布做了什么改進?
●主要是 永久代里面的變化
●本來永久代中放了一些類和常量池
●java8以后永久代就沒有了
●將常量放入了堆里面
●將類放入了metaspace中
●metaspace是不占用jvm內存空間的,占用的是本地空間。
●jvm是如何運行起來的?
●1 類加載器 先加載war、jar中的class,將我們的類加載到metaspace中
●2.spring容器會基于反射技術將metaspace中的類創建出一個實例bean。將bean加載到堆內存中。
●3. 當線程處理請求的時候,在自己線程獨享的內存空間中,每個方法拿到一個棧幀 ,局部變量全部放到棧幀里面去,同時局部變量會去堆內存中引用一個對象,方法層層嵌套,進行壓棧。
●jvm在什么情況下會觸發gc垃圾回收?
●1. 如果說eden滿了,必然會觸發gc垃圾回收。youngGC 簡稱ygc
●此時回收沒有人引用的對象。
●靜態變量/局部變量引用不會被回收。
●被引用的對象不會被回收。
●常見的垃圾回收算法都有什么?
●引用計數法
●通過引用計數器標記占內存中的變量對堆內存中變量的引用數量,當gc垃圾回收的時候,發現引用計數器中的值是0 ,則被回收.
●引用計數法的缺點 : 無法解決循環引用的問題. 
●標記清除法
●降垃圾回收分成兩個階段, 標記階段和 清除階段
●標記階段,jvm會暫停jvm中的所有線程并開啟GC線程. 有一個最大的ROOT對象, 從ROOT對象開始,依次標記,最終沒有指向ROOT對象的對象 就是垃圾對象. 
●清除階段 , 清除垃圾對象 .
●標記清除法優缺點: 解決的了引用計數算法中的循環引用的問題. . 但是每次GC都要掃描全部對象,并且要暫停所有線程,  效率較低 , 同時會產生內存碎片. 
●標記整理法 (JDK1.8 老年代 GC垃圾回收)
●在標記清除算法上做了優化, 第一階段標記階段是一樣的.
●整理階段, 把所有被標記的對象全部壓縮到內存的一端.
●清理階段 , 清除所有未被整理的垃圾對象.
●優缺點: 解決了內存碎片化的問題, 但是比標記清除算法更加消耗cpu . 因為中間多了一步對對象的移動這個操作.
●復制算法(JDK1.8 年輕代 GC垃圾回收 Survivor區)
●兩塊內存大小一樣的內存空間,在使用的使用依次使用其中的一個,另一個清除.留做下次使用.如此循環.
●優缺點:在垃圾對象多的時候,效率高,并且在清理后內存無碎片. 但是垃圾對象較少的時候不適用,因為頻繁復制,消耗資源. 另一個缺點就是內存只能使用50% .
●分代算法
●根據垃圾回收的特點選擇不同的算法.
●老年代 GC垃圾回收
●年輕代 GC垃圾回收  Eden + Survivor ( 0 / 1 ) 區
●年輕代垃圾回收算法?YGC
●對于年輕代而言,大部分對象的生存周期都很短。eden大部分對象都是垃圾!~
●對于年輕代的垃圾回收算法,是復制算法,每次垃圾回收,將沒有被回收的對象復制到一個s區,然后將eden區整個清空。完成一次young GC。下一次ygc 時,將eden區和剛剛的s區中的對象篩選一次,將篩選的結果復制存入空白是s區,此時將剛剛被篩選的eden區和s區中的對象全部清空。完成又一次yGC??偟恼f就是兩個s區和eden區進行配合重復完成ygc。

 
 
------分隔線----------------------------
鋒哥公眾號


鋒哥微信


關注公眾號
【Java資料站】
回復 666
獲取 
66套java
從菜雞到大神
項目實戰課程
山东麻将怎么开牌 广东快乐10分技巧 1000捕鱼游戏程序 时时彩软件开发教学 星悦浙江麻将 官方网站 重庆幸运农场app计划 快3三个6能中多少钱 浙江麻将怎么打 全民欢乐捕鱼辅助软件 麻将来了最新版本 山西快乐10分口诀 贵州快3规则及奖金 2019四肖免费期期准一 重庆麻将技巧 哈灵江苏麻将下载安装 欢乐炸金花官网 福建十一选五前三组走势图