JVM 学習ガイド
Java Virtual Machine(JVM)の仕組みと最適化に関する包括的な学習ドキュメントです。
学習の目的
- JVMの内部構造を理解し、アプリケーションの動作原理を把握する
- メモリ管理とガベージコレクションを理解し、適切なチューニングができる
- パフォーマンス問題のトラブルシューティング能力を身につける
- Java 21の新機能(Virtual Threads等)を活用できる
学習ロードマップ
┌─────────────────────────────────────────────────────────────┐
│ 学習の流れ │
├─────────────────────────────────────────────────────────────┤
│ │
│ 基礎 (JVMを理解する) │
│ ├── JVM概要 │
│ │ └── アーキテクチャ、JDK選択、実行モデル │
│ ├── クラスローディング │
│ │ └── クラスローダー階層、動的ロード │
│ └── メモリ管理 │
│ └── ヒープ、スタック、メタスペース │
│ │
│ GC (ガベージコレクション) │
│ ├── GC基礎 │
│ │ └── GCの種類、動作原理、世代別GC │
│ └── GCチューニング │
│ └── パラメータ設定、モニタリング、選択指針 │
│ │
│ 応用 (パフォーマンスと問題解決) │
│ ├── パフォーマンス │
│ │ └── JIT、プロファイリング、最適化 │
│ └── トラブルシューティング │
│ └── ヒープダンプ、スレッドダンプ、分析ツール │
│ │
│ 最新機能 (Java 21+) │
│ ├── Java 21新機能 │
│ │ └── Virtual Threads、Record、Pattern Matching │
│ └── Native Image │
│ └── GraalVM、AOTコンパイル、コンテナ最適化 │
│ │
└─────────────────────────────────────────────────────────────┘
ドキュメント一覧
基礎
| # | ドキュメント | 説明 | 所要時間 |
|---|---|---|---|
| 01 | JVM概要 | アーキテクチャ、JDK選択、実行モデル | 45分 |
| 02 | クラスローディン グ | クラスローダー階層、動的ロード | 45分 |
| 03 | メモリ管理 | ヒープ、スタック、メタスペース | 60分 |
ガベージコレクション
| # | ドキュメント | 説明 | 所要時間 |
|---|---|---|---|
| 04 | ガベージコレクション | GCの種類、動作原理、世代別GC | 60分 |
| 05 | GCチューニング | パラメータ設定、モニタリング、選択指針 | 60分 |
応用
| # | ドキュメント | 説明 | 所要時間 |
|---|---|---|---|
| 06 | パフォーマンス | JIT、プロファイリング、最適化 | 60分 |
| 07 | トラブルシューティング | ヒープダンプ、スレッドダンプ、分析ツール | 60分 |