拉勾教育,[深入淺出Java虛擬機課程](https://kaiwu.lagou.com/course/courseInfo.htm?courseId=31#/content),便于學習交流。
課程地址:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=31#/content
### 課程背景
"Write Once , Run Anywhere"。相信每位Java人對這句話都不陌生,“一次編寫,到處運行”,我們說這句話的底氣就來自于 JVM(Java Virtual Machine)。你可能花過很多精力學習 JVM 的知識,但在面對真實生產環境產生的問題,依舊會束手無策:
- 正在運行的 Java 程序,突然 OOM
- 程序異常卡頓,CPU 瘋狂運轉,GC 時間飆升
- 面對一堆 JVM 參數無從下手,甚至錯誤配置某個參數而產生負面效果
- 一頭霧水,不知如何了解線上應用的垃圾回收狀況
......
當你面對這些問題,該如何快速定位和解決問題,需要你對Java 虛擬機的實現和優化,有極為深刻的理解。這門課會從四個方面,從基礎知識到實戰問題解決方案,帶你重新學習 Java 虛擬機,帶你還原最真實的問題現場,找到解決方法。
第一章基礎原理:
主要講解一些基礎概念,以及 JVM 的內存區域劃分和類加載機制等。
第二章垃圾回收:
Java 中有非常豐富的垃圾回收器,此部分以理論為主,通過橫向比較的方式講解。
第三章實戰部分:
模擬 OOM 的溢出場景,通過實例分析線上問題,提供多個排查工具的使用介紹。
第四章進階部分:
該模塊偏向底層,介紹 JMM,從字節碼層面來看 Java 的基礎特性以及并發方面的問題。
### 課程大綱

- 前言
- 開篇詞
- 基礎原理
- 第01講:一探究竟:為什么需要 JVM?它處在什么位置?
- 第02講:大廠面試題:你不得不掌握的 JVM 內存管理
- 第03講:大廠面試題:從覆蓋 JDK 的類開始掌握類的加載機制
- 第04講:動手實踐:從棧幀看字節碼是如何在 JVM 中進行流轉的
- 垃圾回收
- 第05講:大廠面試題:得心應手應對 OOM 的疑難雜癥
- 第06講:深入剖析:垃圾回收你真的了解嗎?(上)
- 第06講:深入剖析:垃圾回收你真的了解嗎?(下)
- 第07講:大廠面試題:有了 G1 還需要其他垃圾回收器嗎?
- 第08講:案例實戰:億級流量高并發下如何進行估算和調優
- 實戰部分
- 第09講:案例實戰:面對突如其來的 GC 問題如何下手解決
- 第10講:動手實踐:自己模擬 JVM 內存溢出場景
- 第11講:動手實踐:遇到問題不要慌,輕松搞定內存泄漏
- 第12講:工具進階:如何利用 MAT 找到問題發生的根本原因
- 第13講:動手實踐:讓面試官刮目相看的堆外內存排查
- 第14講:預警與解決:深入淺出 GC 監控與調優
- 第15講:案例分析:一個高死亡率的報表系統的優化之路
- 第16講:案例分析:分庫分表后,我的應用崩潰了
- 進階部分
- 第17講:動手實踐:從字節碼看方法調用的底層實現
- 第18講:大廠面試題:不要搞混 JMM 與 JVM
- 第19講:動手實踐:從字節碼看并發編程的底層實現
- 第20講:動手實踐:不為人熟知的字節碼指令
- 第21講:深入剖析:如何使用 Java Agent 技術對字節碼進行修改
- 第22講:動手實踐:JIT 參數配置如何影響程序運行?
- 第23講:案例分析:大型項目如何進行性能瓶頸調優?
- 彩蛋
- 第24講:未來:JVM 的歷史與展望
- 第25講:福利:常見 JVM 面試題補充