JVM面試題
位元組碼相關
- 知道位元組碼嗎?位元組碼都有哪些?
JMM記憶體模型
- 說說JVM的主要組成部分以及作用?
- jvm記憶體模型,記憶體屏障
- 物件一定分配在堆疊物件不一定分配在堆上,JIT可以實作堆疊上分配
- java執行緒模型和jvm執行緒模型區分
- Java堆的記憶體結構? 在什么地方會發生OOM? 如何分析OOM發生的原因? 讓你自己實作OOM,你會怎么做?
- 什么東西分配在堆上和堆疊上?
- 一個物件從創建到銷毀都是怎么在這些部分里存活和轉移的?
- JVM 運行時區域 常見的堆記憶體溢位情況
- 堆疊溢位的情形(遞回,調節-Xss
類加載器
- 什么是雙親委派模型?
- 類加載器的本質
- 類加載器為什么有三層結構
- 怎么自定義類加載器做容器隔離?
- 講講類加載機制唄?都有哪些類加載器,這些類加載器都加載哪些檔案?
- 手寫一下類加載Demo
- Classloader作用
- 講一講類加載器作業機制?你知道強參考、弱參考和軟參考嗎?為什么要有這些東西?他們有什么作用?你在專案中用過嗎?
- 說一下java類加載器的作業機制?類加載在那個區域進行的?
- 你自己定義的類能被最頂級的類加載器加載嗎?為什么? 自定義的類會被什么類加載器加載? 如何加載一個不在根目錄下的類?
- 什么是雙親委派模型?為什么Java的類加載器要使用雙親委派模型? 15、如何自定義自己的類加載器,自己的類加載器和Java自帶的類加載器關系如何處理?
- 什么是tomcat/jboss類加載機制?
GC垃圾回收
- 簡單闡述下垃圾回識訓制
- 堆的原理和分代了解嗎
- GC方式有哪些?它們的原理是什么?
- CMS和G1各自使用的演算法以及優缺點
- 記憶體分配策略(如何在Eden和老年代中分配)、回收策略(Minor GC、Full GC)
- 談談你對上面GC中回收物件中提出的物件有什么理解?回收那些物件,需要怎么分辨?
- 你了解的垃圾收集演算法有哪些?
- 你了解那些垃圾收集器?
- 線上發送頻繁fullgc如何處理?
- 新生代,老年代說下?
- 一般新生代逃過幾次gc()會被劃分到老年代?
- survivor區作用
- jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講物件如何晉升到老年代,幾種主要的jvm引數等
- 你知道哪幾種垃圾收集器,各自的優缺點,重點講下CMS
- 新生代垃圾收集是否會停頓 ,cms是否會停頓,在什么時候停頓
- 講講 GC,清除,整理,交換(survivor 區域),CMS 執行的程序
- 什么情況會導致記憶體泄露,記憶體溢位,你怎么解決的,
- gc怎么回收物件的,用了什么演算法 說一下分治演算法思想
- JVM垃圾回識訓制,何時觸發MinorGC等
- 新生代和老生代的記憶體回收策略 ,Eden和Survivor的比例分配等
- Java 8的記憶體分代改進
- 簡述java記憶體分配與回收策略以及Minor GC和Major GC?
- 記憶體溢位一般發生在哪個區?永久代會不會導致記憶體溢位?
- 堆疊溢位一般拋出什么例外?jvm設定堆疊的大小,引數?
- 說說GC的程序 強制young gc會有什么問題? 知道G1么? 回收程序是怎么樣的?
- CMS GC有什么問題? 怎么避免產生浮動垃圾?
- 如果web服務器突然出現頻率很高的FullGC,可能是什么原因?你會怎么去排查呢?
- “只對堆進行gc ”這句話對不對?呼叫system.gc()馬上就執行gc嗎?
- GC的機制是什么?垃圾回收器的基本原理是還說呢么?是否可以立即回收記憶體?怎么樣主動的通知JVM進行垃圾回收?
- 頻繁老年代回收怎么分析和解決?
- 什么時候一個物件會被GC? 接著問為什么要在這種時候物件才會被GC? GC策略都有哪些分類?這些策略分別都有什么優劣勢?都適用于什么場景? 舉個實際的場景,讓選擇一個GC策略?然后問什么要選擇這個策略?
- 記憶體的哪些部分會參與GC的回收?
- 執行緒池中的執行緒為什么不會被GC回收
- JVM 簡述 G1,可預測停頓時間,是怎么做到的?
- CMS和G1的區別,講一講CMS垃圾收集的步驟,哪些步驟是并發哪些是并行,知道哪些垃圾收集演算法
- 觸發Full GC 的場景有哪些? 說說G1垃圾回收器?老年代,年輕代如何分配?
- 垃圾回識訓本原理、幾種常見的垃圾回收器的特性、重點了解CMS(或G1)以及一些重要的引數 記憶體區域:能說清jvm的記憶體劃分 常見問題 CMS GC回收分為哪幾個階段?分別做了什么事情? CMS有哪些重要引數? Concurrent Model Failure和ParNew promotion failed什么情況下會發生? CMS的優缺點? 有做過哪些GC調優? 為什么要劃分成年輕代和老年代? 年輕代為什么被劃分成eden、survivor區域? 年輕代為什么采用的是復制演算法? 老年代為什么采用的是標記清除、標記整理演算法 什么情況下使用堆外記憶體?要注意些什么? 堆外記憶體如何被回收?
- g1收集器用的具體演算法? 遇到過什么線上問題?執行緒池用法不對,頻繁full GC怎么處理的?回答記憶體dump,定位問題
- GC的常見演算法,CMS以及G1的垃圾回收程序,CMS的各個階段哪兩個是Stop the world的,CMS會不會產生碎片,G1的優勢
- 標記清除和標記整理演算法的理解以及優缺點,
- eden survivor區的比例,為什么是這個比例,eden survivor的作業程序,
- JVM如何判斷一個物件是否該被GC,可以視為root的都有哪幾種型別,
- 強軟弱虛參考的區別以及GC對他們執行怎樣的操作
- Java是否可以GC直接記憶體
- JVM 記憶體分配策略 FullGC 的觸發條件有哪些
- RememberedSet的作用
- YGC和FGC發生的具體場景; 4、jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?
JVM調優
- 請問你做過哪些JVM優化?使用什么方法?達到什么效果?
- 當出現了記憶體溢位,你怎么排錯?
- 用過哪些命令查看JVM的狀態、堆疊資訊?
- jvm記憶體調優用過哪些工具,jstate做什么用的?如何dump出當前執行緒狀態?
- 應用服務器的jvm調優實際經驗,如何做的,在哪里用到的
- 物件比較大,生命周期短,GC引數怎么調優
- 平時遇到記憶體溢位的情形,處理 答:-Xms和-Xmx,-XX:+HeapDumpOnOutMemoryError,讓虛擬機在出現記憶體溢位例外時Dump出當前的記憶體堆轉儲快照以便事后分析,
歡迎搜索關注本人與朋友共同開發的微信面經小程式【大廠面試助手】!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/183076.html
標籤:其他
