CodeGym
促銷
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • 組合 CompletableFuture:thenCombine、allOf、anyOf

    JAVA 25 SELF
    等級 55,課程 2
    如何使用 CompletableFuture 並行處理任務並合併結果:透過 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 與逾時的實作範例,並附上常見錯誤與其解法。
    可用
  • 非同步 IO: AsynchronousFileChannel (NIO2)

    JAVA 25 SELF
    等級 56,課程 0
    在本講中,我們將講解 Java NIO.2 的非同步輸入/輸出(AIO):它與同步 IO 的差異、如何使用 AsynchronousFileChannel、如何透過 Future 與 CompletionHandler 執行讀/寫操作,以及選擇 ExecutorService 執行緒池會帶來的影響。實作上,我們會示範如何透過 open 開啟通道、使用 read/ write 方法、理解互動流程,以及常見錯誤。
    可用
  • Future、CompletionHandler:處理操作的完成

    JAVA 25 SELF
    等級 56,課程 1
    如何在 Java 中處理 NIO2 非同步操作的完成:透過 Future 的「承諾」與透過 CompletionHandler 的回呼。我們會解析 read/ write 在 AsynchronousFileChannel 上的簽名、透過 get() 以阻塞方式取得結果與查詢 isDone(),以及在 completed()/ failed() 中的非阻塞處理。並展示讀寫的實用範例與兩種做法的簡要比較。
    可用
  • 非同步處理文字檔案

    JAVA 25 SELF
    等級 56,課程 2
    在 Java 中實作非同步 I/O:透過 AsynchronousFileChannel 將大型文字檔按區塊讀入 ByteBuffer,並使用 CharsetDecoder 將位元組正確轉換為字元;同時以非同步方式寫回資料(使用 Future 或 CompletionHandler)。我們會說明多位元組字元在區塊邊界「斷裂」的問題(例如, "UTF-8")、即時統計行數、編碼的選擇,以及使用緩衝區與通道時的常見錯誤。
    可用
  • 非同步 I/O 的錯誤處理與作業取消

    JAVA 25 SELF
    等級 56,課程 3
    如何在 Java 的非同步輸入/輸出中正確攔截並處理錯誤:使用帶有 completed/ failed 方法的回呼 CompletionHandler、記錄與通知。說明透過 Future 與 cancel( boolean) 進行取消、對 get() 與 CancellationException 的影響,以及實務建議: try-with-resources、使用 CountDownLatch/ CompletableFuture 進行同步,以及資源釋放。
    可用
  • 非同步檔案作業錯誤剖析

    JAVA 25 SELF
    等級 56,課程 4
    針對 Java NIO 中的非同步檔案 I/O,實作層面的坑點剖析:正確管理緩衝區 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」為何沉重;虛擬執行緒( Virtual Thread)在 carrier threads 之上帶來了什麼改變;以及它如何在不落入反應式「麵條式程式碼」的情況下提供可伸縮性。接著以 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)在每個虛擬執行緒中執行一個任務、它與傳統執行緒池( 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