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

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • リフレクションによるオブジェクト生成

    JAVA 25 SELF
    レベル 62,レッスン 3
    実行時にクラスを扱いながらオブジェクトを生成する方法: なぜ Class.newInstance() が廃止予定(deprecated)なのか、 getConstructor/ getDeclaredConstructor と Constructor.newInstance の正しい使い方、 Method.invoke によるメソッド呼び出し、 Field によるフィールドの読み取り・変更を解説します。典型的な例外( ReflectiveOperationException など)、モジュールシステムの制約、実用的なベストプラクティス、動的インスタンス化のためのミニユーティリティも紹介。さらに—全体のプロセスを図解します。
    利用可能
  • リフレクションと Dependency Injection

    JAVA 25 SELF
    レベル 62,レッスン 4
    この講義では、Java におけるリフレクションの実践を扱います。 Class、 Field、 Method を使ってプライベートフィールド( setAccessible( true))を読み取り、簡易シリアライザを作る方法。アノテーション( @Inject、 @Autowired)に基づいてコンストラクタやフィールド経由で依存性を注入する DI コンテナの仕組み。 Proxy と InvocationHandler による動的プロキシで呼び出しを横取りする方法。実運用での適用例( Spring、 JUnit、 Jackson)および発生し得る制約やエラーについて解説します。
    利用可能
  • ロギングの基本: java.util.logging, Log4j, SLF4J

    JAVA 25 SELF
    レベル 63,レッスン 0
    アプリケーションにログが必要な理由、そして単なる System.out.println では本番環境で通用しない理由。 ERROR/ WARN/ INFO/ DEBUG/ TRACE のレベル、組み込みスタック java.util.logging と設定ファイル logging.properties を解説し、 Log4j 2、 Logback、ファサード SLF4J を紹介します。コンソール出力との比較、依存関係の追加、典型的な設定・利用ミスも取り上げます。
    利用可能
  • ログのフォーマットとレベル:ベストプラクティス

    JAVA 25 SELF
    レベル 63,レッスン 1
    良いログメッセージの構成要素(時刻、レベル INFO/ ERROR、ロガー名、本文、スタック)を解説し、SLF4J/Log4j2 のテンプレートによる正しい書式設定(連結の代わりに "{}" を使用)、例外のロギング方法( logger.error(..., ex))、 ERROR/ WARN/ INFO/ DEBUG/ TRACE の使い分け、さらにベストプラクティス(機微情報は記録しない、分かりやすいメッセージ、相関 ID( orderId, userId)、適切な log4j2.xml の設定)を取り上げます。
    利用可能
  • マルチスレッドおよび Web アプリケーションにおけるロギング

    JAVA 25 SELF
    レベル 63,レッスン 2
    マルチスレッドや Web でログを信頼できるものにする方法: 既製ライブラリのスレッドセーフ性( Logback、 Log4j 2、 java.util.logging)、 MDC を使った requestId の伝搬、Spring のフィルタやエラーハンドラとの統合、 System.out との違い、スレッドプールの注意点、マイクロサービスでのトレーシング(traceId、 OpenTelemetry)。実践例と典型的なミスを取り上げ、 SLF4J と Logger を static final フィールドとして使います。
    利用可能
  • JVM の監視: JMX, VisualVM, Java Flight Recorder

    JAVA 25 SELF
    レベル 63,レッスン 3
    この講義は、 JVM を監視するための実践ガイドです。標準メトリクスを JMX と JConsole で読む方法、 VisualVM でメモリやスレッドを可視化し、メソッドをプロファイルする方法( heap dump や thread dump を含む)、さらに Java Flight Recorder を使って「ブラックボックス」を記録し、 JDK Mission Control で解析する方法を扱います。起動コマンド( -XX:StartFlightRecording)を示し、 GC/スレッドの代表的な分析シナリオとよくある間違いを解説します。
    利用可能
  • プロファイリングとコード最適化:ツールとアプローチ

    JAVA 25 SELF
    レベル 63,レッスン 4
    プロファイリングがモニタリングとどう異なるか、重要なメトリクス(メソッドの実行時間、メモリ、スレッド、ロック)とは何か、そしてどのツールを使うべきかを解説します: VisualVM、 Java Flight Recorder、さらに商用プロファイラ。実践では「遅い」電卓を調べ、「ホットスポット」の見つけ方、 heap dump の分析、アルゴリズムの置き換え・割り当ての削減・キャッシュ化によるボトルネックの解消を学びます。最後に、最適化プロセスのビジュアルなフローと、ありがちな誤りの解説で締めくくります。
    利用可能
  • 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 の正しい設定も扱います。最後に — 実際のリーク例とその修正を紹介します。
    利用可能
  • 1
  • ...
  • 27
  • 28
  • 29
  • 30
学ぶ
  • 登録
  • 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