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

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • CompletableFuture の組み合わせ: thenCombine, allOf, anyOf

    JAVA 25 SELF
    レベル 55,レッスン 2
    CompletableFuture を使ってタスクを並列化し、結果を統合する方法: 2 つの結果を thenCombine/ thenCombineAsync で結合する、 allOf で複数タスクの完了を待つ、 anyOf で最も速い応答に反応する。 supplyAsync を用いた実例、ノンブロッキング処理( thenAccept, thenRun)、さらにエラーの注意点とその処理( exceptionally, handle, whenComplete)を解説。最後にメソッド比較のコンパクトな表もあります。
    利用可能
  • 非同期コードにおけるエラー処理: exceptionally, handle

    JAVA 25 SELF
    レベル 55,レッスン 3
    CompletableFuture のチェーンで例外を安全に捕捉・処理する方法を解説します。 exceptionally(エラー時のフォールバック値)、 handle(成功/失敗の汎用ハンドラ)、 whenComplete(結果を変更しない副作用)の役割を整理します。なぜ get()/ join() の直接呼び出しが原因を ExecutionException/ CompletionException にラップするのか、段階( thenApply, thenAccept)の組み合わせ方や、避けるべき典型的なミスについても説明します。
    利用可能
  • thenCompose + カスタム Executor + タイムアウト

    JAVA 25 SELF
    レベル 55,レッスン 4
    CompletableFuture で非同期ステップを thenCompose で正しく「つなぐ」方法と、 thenApply で十分な場合の見極め方。 ExecutorService( ForkJoinPool.commonPool() の代わり)で独自スレッドプールをなぜ・どのように使うか。 orTimeout と completeOnTimeout でチェーンを「無限待ち」から守る方法。最後に、カスタム Executor、 thenCompose、タイムアウトを使った実践例と、よくある誤りとその解決策を示します。
    利用可能
  • 非同期I/O: AsynchronousFileChannel (NIO2)

    JAVA 25 SELF
    レベル 56,レッスン 0
    この講義では、Java NIO.2 における非同期入出力(AIO)を解説します。同期I/Oとの違い、 AsynchronousFileChannel の使い方、 Future や CompletionHandler による読み書きの起動方法、さらにスレッドプール ExecutorService の選択が与える影響を取り上げます。実践として、 open によるチャネルの開き方、 read/ write メソッド、処理の流れ、そしてよくあるミスを確認します。
    利用可能
  • Future, CompletionHandler: 操作完了の処理

    JAVA 25 SELF
    レベル 56,レッスン 1
    Java で NIO2 の非同期操作の完了をどう扱うか: 「約束」を表す Future と、コールバックの CompletionHandler。 AsynchronousFileChannel の read/ write のシグネチャ、 get() によるブロッキング取得と isDone() によるポーリング、さらに completed()/ failed() によるノンブロッキング処理を解説します。読み取り/書き込みの実例とアプローチの簡単な比較も示します。
    利用可能
  • テキストファイルの非同期処理

    JAVA 25 SELF
    レベル 56,レッスン 2
    Javaで非同期入出力を練習します。 ByteBuffer に AsynchronousFileChannel 経由で大きなテキストファイルをブロック単位で読み込み、 CharsetDecoder を使ってバイトを文字に正しく変換し、 Future または CompletionHandler で非同期に書き戻します。マルチバイト文字(例: "UTF-8")の「分断」問題、オンザフライでの行数カウント、エンコーディングの選択、そしてバッファやチャネル操作での典型的なミスを解説します。
    利用可能
  • 非同期 I/O におけるエラー処理と操作のキャンセル

    JAVA 25 SELF
    レベル 56,レッスン 3
    Java の非同期入出力においてエラーを正しく捕捉・処理する方法: コールバック CompletionHandler の completed/ failed メソッド、ロギングと通知。 Future と cancel( boolean) による操作のキャンセル、 get() と CancellationException への影響、そして実践的なヒント: try-with-resources、 CountDownLatch/ CompletableFuture による同期とリソース解放。
    利用可能
  • 非同期ファイル操作におけるエラー解説

    JAVA 25 SELF
    レベル 56,レッスン 4
    Java NIO における非同期ファイル入出力の落とし穴を実践的に解説: バッファ ByteBuffer の正しい管理( position/ limit の性質、 flip()・ clear()・ compact() の呼び出し)、 AsynchronousFileChannel における並行操作時のレース、リソースのクローズ( channel.close()、 try-with-resources)、 CompletionHandler のエラー処理( failed(...) メソッド)、 Future<Integer> によるオペレーションのライフサイクル管理と CountDownLatch による同期、 CharsetDecoder を用いたエンコーディングの正しい扱い、ならびに適切なスレッドプール ExecutorService の選択。
    利用可能
  • スレッド vs 仮想スレッド: 違いと利点

    JAVA 25 SELF
    レベル 57,レッスン 0
    プラットフォームスレッドと仮想スレッドの違いを解説します: モデル「 Platform Thread → OS」がどう動き、なぜ重いのか、 carrier threads 上の仮想スレッド( Virtual Thread)で何が変わるのか、そしてリアクティブな「スパゲッティ」なしでどうスケールできるのか。 Thread.ofVirtual() を使った実践、 I/O‑bound と CPU‑bound のタスクでの挙動比較、互換性( InputStream.read、 Socket.accept のようなブロッキング呼び出し)や、典型的な落とし穴(古い同期機構、「魔法のような高速化」への期待)にも触れます。
    利用可能
  • 仮想スレッドの作成: Thread.ofVirtual().start()

    JAVA 25 SELF
    レベル 57,レッスン 1
    Java 21 の仮想スレッド活用実践: プラットフォームスレッドとの違い、 Thread.startVirtualThread(...) や Thread.ofVirtual().start(...) での起動方法、依然として new Thread(...) や Thread.ofPlatform() が適切な場面、そして Executors.newVirtualThreadPerTaskExecutor() を使った大量タスクの実行方法。 join() による終了待ち、 Future と ExecutionException によるエラー処理、さらに Virtual Threads 利用時のよくある落とし穴も解説します。
    利用可能
  • Virtual Threads のスケーラビリティとパフォーマンス

    JAVA 25 SELF
    レベル 57,レッスン 2
    プラットフォームスレッド Thread と Java 21 の仮想スレッドの実践的比較: JVM が「 キャリアスレッド」(carrier threads) によって最小限のメモリで数十万のタスクを実行する仕組み、仮想スレッドが威力を発揮する場面 (I/O-bound) とそうでない場面 (CPU-bound)。制約 ( synchronized、ネイティブロック)、ベストプラクティス ( Executors.newVirtualThreadPerTaskExecutor())、 JVisualVM と Java Flight Recorder によるモニタリング、そして Virtual Threads への移行でありがちなミスも解説します。
    利用可能
  • 仮想スレッドでのExecutorの使い方

    JAVA 25 SELF
    レベル 57,レッスン 3
    Executors.newVirtualThreadPerTaskExecutor()(Java 21)を使って、1つのタスクを1つの仮想スレッドで実行する方法、これが従来のプール( newFixedThreadPool、 newCachedThreadPool)とどう違うか、 shutdown()や awaitTermination(...)で正しく終了させる方法、 Futureでタスクの結果を受け取る方法、そして仮想スレッドが最大の効果を発揮する場面(大量のI/O、Webサーバ、負荷テスト)について解説します。最後に—よくあるミスと注意点も紹介します。
    利用可能
  • 1
  • ...
  • 24
  • 25
  • 26
  • 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