7面阿里前6面順利通過,沒想到最後一面居然掛在了JVM上面!臨走時面試官給了我一份JVM複習資源讓我好好補補這方面的技術欠缺。

寫在前面

普通二本畢業,四年工作經驗,前段時間有幸獲得阿里面試機會,對此本人也是非常重視,準備得特別充分!前前後後總共面了7面,前6面都是順利通過,沒想到最後一面的時候掛在了JVM上面!

JVM面題如下:

講一下JVM堆內存管理(對象分配過程)

兩個Region不是連續的,而且之間還有可達的引用,我現在要回收一個,另一個怎麼處理?

.聽說過CMS的併發預處理和併發可中斷預處理嗎?

到底多大的對象會被直接扔到老年代?

ThreadL ocal有沒有內存泄漏問題?

我只答出來兩道,最後痛失offer 失去了進阿里的機會。走的時候面試官給我發了一份JVM複習資料大禮包讓我好好學習學習,回去之後我也下定決心要惡補JVM知識。在此也是把這份JVM學習資源分享給大家,大家共同學習一起進步!

一、JVM學習進階思維腦圖

JVM知識點全部都總結在這裏面了,清晰明瞭的確定學習JVM的方向!

需要的老鐵請轉發+關注,然後添加VX(tkzl6666)即可獲得【JVM學習資源】的免費領取方式!

二、《JVM體系結構與GC調優》PPT

本PPT從JVM體系結構概述、GC算法、Hotspot內存管理、Hotspot垃圾回收器、調優和監控工具六大方面進行講述。

此PPT長達46頁,全部展示篇幅過長,隨意抽出9張作爲展示。

三、JVM調優實戰視頻合集

馬士兵老師用四個小時,帶你走進JVM實戰調優的世界,幫助你在面對那些上億用戶,千萬QPS,百萬TPS,以及每天上PB級大數據量處理系統的時候,不再膽怯,不再心虛,開啓漲薪升級之旅!

需要的老鐵請轉發+關注,然後添加VX(tkzl6666)即可獲得【JVM學習資源】的免費領取方式!

1、什麼是垃圾?

2、如何定位垃圾?

3、常用垃圾回收算法

4、常用垃圾回收器

5、系統上線前預估系統的內存佔用情況

6、系統上線前預估系統的併發訪問情況

7、根據預估值設定JVM初始參數

8、壓力測試方法論

9、根據壓測結果調整參數值

10、系統上線後設定日誌參數

11、定期觀察日誌情況

12、根據日誌解決實戰問題

13、爲什麼一個百萬級TPS系統會頻繁GC?

14、定位JVM問題的實用參數設置

15、用top命令觀察系統運行情況

16、用jps定位虛擬機進程

17、用jstat定位JVM問題

18、用jmap導出內存轉儲文件

19、用jstack定位問題線程

20、用jhat分析轉儲文件

21、其他給力的工具visual VM,MAT,Arthas介紹

22、動手實戰

四、《深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)周志明著》

這本書Java程序員一定要讀一讀,目前這本書的電子版市面上很難找到!

本書淺顯易懂。最重要的是開啓一扇理解虛擬機的大門。

內存管理機制與Java內存模型、高效併發這三章是特別實用的。

需要的老鐵請轉發+關注,然後添加VX(tkzl6666)即可獲得【JVM學習資源】的免費領取方式!

第1章 走近]ava

第2章 Java內 存區域與內存溢出異常

第3章 垃圾收集器與內存分配策略

第4章 虛擬機性能監控、故障處理工具

第5章 調優案例分析與實戰

第6章 類文件結構

第7章 虛擬機類加載機制

第8章 虛擬機字節碼執行引擎

第9章 類加載及執行子系統的案例與實戰

第10章 前端編譯與優化

第11章 後端編譯與優化

第12章 Java內存模型與線程

第13章 線程安全與鎖優化

五、JVM面試題及答案

需要的老鐵請一鍵三連+評論,然後添加VX(tkzl6666)即可免費領取【JVM學習資源】

1. 內存模型以及分區,需要詳細到每個區放什麼。

2. 堆裏面的分區:Eden,survival (from+ to),老年代,各自的特點。

3. 對象創建方法,對象的內存分配,對象的訪問定位。

4. GC 的兩種判定方法

5. SafePoint 是什麼

6. GC 的三種收集方法:標記清除、標記整理、複製算法的原理與特點,分別用在什麼地方,如果讓你優化收集方法,有什麼思路?

7. GC 收集器有哪些?CMS 收集器與 G1 收集器的特點。

8. Minor GC 與 Full GC 分別在什麼時候發生?

9. 幾種常用的內存調試工具:jmap、jstack、jconsole、jhat

10. 類加載的幾個過程

11.JVM 內存分哪幾個區,每個區的作用是什麼?

12.如何判斷一個對象是否存活?(或者 GC 對象的判定方法)

13.簡述 java 垃圾回收機制?

14.java 中垃圾收集的方法有哪些?

15.java 內存模型

16.java 類加載過程?

17. 簡述 java 類加載機制?

18. 類加載器雙親委派模型機制?

19.什麼是類加載器,類加載器有哪些?

20.簡述 java 內存分配與回收策略以及 Minor GC 和Major GC

 

JVM在性能調優中使用非常廣泛,無論什麼級別的Java從業者,JVM是進階時必須邁的坎。如果不懂JVM的話,薪酬會非常喫虧。除了面試,學習JVM有利於更深入地理解 Java 這門語言,學好JVM,爲未來排查線上問題打下堅實的基礎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章