CodeGym
学習
コース
課題
アンケート & クイズ
ゲーム
ヘルプ
スケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
成功事例
アクティビティ
レビュー
サブスクリプション
ライトテーマ

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • JVMのメモリ構造: スタック、ヒープ、PermGen/MetaSpace

    JAVA 25 SELF
    レベル 64,レッスン 0
    ローカル変数、オブジェクト、クラスのメタデータはJVMの実行中にどこへ行くのか: スレッドスタック、ヒープ、PermGen → MetaSpace の進化を解説。どうやって GCが動くのか、どんなメモリエラーがあるのか( StackOverflowError、 OutOfMemoryError)、起動フラグ( -Xss、 -Xmx、 -XX:MaxMetaspaceSize)がどう影響するのかも説明します。図解、mermaidダイアグラム、動作するサンプル付き。
    利用可能
  • ガベージコレクタ: G1、ZGC、Shenandoah、比較

    JAVA 25 SELF
    レベル 64,レッスン 1
    本講義では、 JVM のガベージコレクタ( GC)の仕組み、従来の Serial/ Parallel/ CMS と最新の G1、 ZGC、 Shenandoah の違い、Young/Old 世代とは何か、なぜ Stop-the-World の停止が起きるのか、そしてそれをどう最小化するかを解説します。実践として、各種 GC をフラグで有効化する方法( -XX:+UseG1GC、 -XX:+UseZGC、 -XX:+UseShenandoahGC)、停止時間の調整( -XX:MaxGCPauseMillis)とヒープサイズの設定( -Xms/ -Xmx)、ログの読み方( -Xlog:gc*)、そして典型的な落とし穴(例: System.gc() の強制呼び出し)を見ていきます。
    利用可能
  • ローカル変数、メモリリーク、弱参照

    JAVA 25 SELF
    レベル 64,レッスン 2
    この講義では、ローカル変数がどこに存在するのか(スレッドのスタック)と、それがヒープとどう違うのか、GC があるにもかかわらず Java でメモリリークが起こり得る理由と、その回避方法を学びます。実例として「永遠の」 static コレクション、解除し忘れたリスナー、キャッシュを取り上げます。参照ファミリーである SoftReference、 WeakReference、 PhantomReference、さらにコンテナの WeakHashMap を紹介します。リークの修正を練習し、なぜ System.gc() の呼び出しは JVM への単なるヒントであって命令ではないのか、そして最終的に OutOfMemoryError に至り得るのかを議論します。
    利用可能
  • メモリ解析ツール:jmap、jvisualvm

    JAVA 25 SELF
    レベル 64,レッスン 3
    JVM におけるメモリ問題の診断に関する実践ガイド:ユーティリティ jmap でヒープダンプ( heap dump)を取得し、 -heap と -histo でサマリを確認、 jvisualvm( Monitor、 Heap Dump、 Threads、 Profiler タブ)でアプリを調査し、リークの例を分解して Eclipse MAT と jconsole に触れます。最後に、よくあるミスとヒントを紹介します。
    利用可能
  • メモリ管理でよくある誤りの徹底解説

    JAVA 25 SELF
    レベル 64,レッスン 4
    実践的に、なぜ Java アプリがメモリに「リーク」して遅くなるのかを解き明かします: 取り外し忘れのリスナー( addActionListener/ removeActionListener)、永続してしまう静的コレクション、クローズし忘れたリソース(推奨: try-with-resources)、参照を保持してしまう匿名/内部クラス、そして System.gc() の乱用。GC ログ( -Xlog:gc*、 -XX:+PrintGCDetails)の読み方、コレクターの選定、 WeakHashMap を使ったキャッシュ、監視( jvisualvm、 jconsole)、heap dump の分析、そして -Xmx/ -Xms の正しい設定も扱います。最後に — 実際のリーク例とその修正を紹介します。
    利用可能
学ぶ
  • 登録
  • Javaコース
  • 課題のサポート
  • 料金
  • ゲームプロジェクト
  • Java構文
コミュニティ
  • ユーザー
  • 記事
  • フォーラム
  • チャット
  • 成功事例
  • アクティビティ
  • アフィリエイトプログラム
会社情報
  • 私たちについて
  • 連絡先
  • レビュー
  • プレスルーム
  • CodeGym for EDU
  • よくある質問
  • サポート
CodeGymCodeGym は、ゼロからJavaプログラミングを学ぶためのオンラインコースです。このコースは初心者がJavaを習得するのに最適です。即時検証付きの1200以上の課題と、Java基礎理論の必要な範囲を含みます。学習の成功を支援するために、クイズ、コーディングプロジェクト、効率的な学習に関するコンテンツ、Java開発者のキャリアに関する機能など、一連のモチベーション機能を導入しています。
フォローする
インターフェース言語
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands
日本語
한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym
MastercardVisa
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym