作者介紹
悟空
全棧攻城獅一枚,開發組長,自主開發了Java學習平台、PMP刷題小程序。目前主修Java
、多線程
、SpringBoot
、SpringCloud
。
一、JVM大廠面試題
答案在Java刷題小程序查看



01.JVM內存區域
02.JVM中的線程
03.JVM的棧中引用如何和堆中的對象產生關聯
04.逃逸分析技術
05.常見GC算法
06.CMS垃圾回收過程,CMS的各個階段哪兩個是Stop the world的
07.講一講G1收集器
08.標記清除和標記整理算法的理解以及優缺點?
09.eden survivor區的比例,為什么是這個比例,eden survivor的工作過程?
10.JVM如何判斷一個對象是否該被GC,可以視為root的都有哪幾種類型?
11.Java是否可以GC直接內存?
12.強軟弱虛引用的區別以及GC對他們執行怎樣的操作?
13.Java類加載的過程?
14.雙親委派模型的過程以及優勢?
15.JVM方法棧的工作過程,方法棧和本地方法棧有什么區別?
16.常用的JVM調優參數?
17.dump文件的分析?
18.對象分配規則?
19.解釋內存中的棧(stack)、堆(heap)和靜態區(static area)的用法
20.什么是類的加載?
21.如何⾃定義⼀個類加載器?你使⽤過哪些或者你在什么場景下需要?
22.Java對象創建過程?
23.類的生命周期?
24.垃圾收集器有哪幾種?
25.如何判斷一個對象是否應該被回收?
26.引用的分類?
27.調優命令
28.調優工具
29.Minor GC與Full GC分別在什么時候發生
30.你有沒有遇到過OutOfMemory問題?你是怎么來處理這個問題的?處理過程中有哪些收獲?
31.如果線上程序周期性地出現卡頓,你懷疑可 能是 GC 導致的,你會怎么來排查這個問題?
32.JDK1.8之后PermSpace有哪些變動?
33.StackOverflow異常有沒有遇到過?⼀般你猜測會在什么情況下被觸發?如何指定⼀個線程的堆棧⼤⼩?⼀般你們寫多少?
34.內存模型以及分區, 需要詳細到每個區放什么?
35.堆里面的分區Eden&survival(from+ to)&老年代各自的特點?
36.如和判斷一個對象是否存活?
37.SafePoint是什么?
38.簡述GC的三種收集方法標記清除、標記整理、復制算法的原理。
39.CMS收集器與G1收集器的特點?
40.Minor GC與Full GC分別在什么時候發生?
41.有哪幾種常用的內存調試工具?
42.Java類加載的幾個過程?
43.JVM 內存分哪幾個區,每個區的作用是什么?
44.簡述 java 垃圾回收機制?
45.Java 中垃圾收集的方法有哪些?
46.簡述Java內存模型
47.簡述 java 類加載機制
48.類加載器雙親委派模型機制是怎么樣的?
49.為什么要有雙親委派模型?
50.什么是類加載器, 類加載器有哪些?
51.簡述Java 內存分配與回收策略以及 Minor GC 和 Major GC