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

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • IO 效能問題:瓶頸

    JAVA 25 SELF
    等級 41,課程 0
    這堂課講解什麼是「瓶頸」在輸入/輸出中的意義,以及如何發現並排除它。我們會說明為什麼磁碟與網路操作顯著慢於 RAM、常見的反模式有哪些(透過 read() 逐位元組讀取、同步式日誌等)、緩衝如何幫忙( BufferedInputStream、 BufferedReader)、效能分析器( VisualVM、 JProfiler),以及透過 System. currentTimeMillis () 進行時間量測。我們將對檔案 "bigfile.txt" 進行實作實驗,比較有無緩衝的速度、觀察 SSD/HDD 與網路的影響,並列出常見錯誤。
    可用
  • NIO 通道與 ByteBuffer

    JAVA 25 SELF
    等級 41,課程 1
    Java NIO 非阻塞輸入/輸出的實作入門:解析通道 Channel 與緩衝區 ByteBuffer 與串流 InputStream/ OutputStream 的差異,如何使用 FileChannel 進行讀寫、透過 position()/ truncate() 做定位與長度調整、操作緩衝區參數( capacity、 limit、 position、 mark),以及在 allocate() 與 allocateDirect() 之間做選擇。也展示了 zero-copy 操作 transferTo()/ transferFrom(),以及常見失誤,例如忘記呼叫 flip() 或使用了錯誤的緩衝區模式。
    可用
  • 大型檔案:Chunking 模式

    JAVA 25 SELF
    等級 41,課程 2
    如何在不觸發 OutOfMemoryError 的情況下高效處理數十 GB 的檔案:將其切成區塊(chunks),透過 RandomAccessFile 和 FileChannel 依位置讀取,使用 ExecutorService/ ForkJoinPool 進行平行處理;而對於單純複製,使用透過 transferTo/ transferFrom 的零拷貝(zero-copy)。我們將說明如何選擇區塊大小、處理行邊界、同步結果以及常見錯誤。
    可用
  • 處理大型檔案:chunking、memory mapping

    JAVA 25 SELF
    等級 41,課程 3
    如何在 Java 中安全又快速地處理超大檔案:透過串流與緩衝區分塊(chunking)讀取,為效能調整緩衝區大小,使用 MappedByteBuffer 與 FileChannel 進行超高速的隨機存取。剖析 memory mapping 的優缺點、資源與平行化建議,以及常見錯誤(例如 OutOfMemoryError、遺漏關閉描述元、搜尋時區塊重疊)。
    可用
  • 封存/壓縮:java.util.zip

    JAVA 25 SELF
    等級 41,課程 4
    關於在 Java 中處理封存與壓縮的實作型講座:認識套件 java.util.zip、串流 ZipInputStream/ ZipOutputStream 與隨機存取類別 ZipFile,透過 Deflater 管理壓縮等級( 0… 9, DEFAULT_COMPRESSION),針對單一檔案使用 GZIPInputStream/ GZIPOutputStream,並利用 Files.walk 與 PathMatcher 進行篩選( "glob:**/*.txt")來封裝/解壓目錄。也會討論安全性:透過路徑正規化防禦 Zip Slip,以及對 zip bomb 進行容量控管,最後組裝一個帶萬用字元的迷你 CLI「zip/unzip」。
    可用
  • 物件序列化入門:為什麼需要

    JAVA 25 SELF
    等級 42,課程 0
    為什麼以及如何在 Java 中「打包」物件:使用 ObjectOutputStream/ ObjectInputStream 將其轉換為位元組串流並還原,讓狀態能在多次啟動之間保存、透過網路傳送以及快取結果。我們解析介面 Serializable 的角色、關鍵字 transient 的細節,以及像 "save.dat" 這樣的字串;同時討論安全風險與版本相容性。實作練習:迷你遊戲存檔、客戶端↔伺服器的訊息傳送以及計算結果快取。
    可用
  • Serializable 介面:基本原則

    JAVA 25 SELF
    等級 42,課程 1
    解析 Java 中的序列化基礎:標記介面 java.io.Serializable、如何透過 implements Serializable 標註類別、對欄位的要求( static、 transient)、使用 ObjectOutputStream/ ObjectInputStream 逐步示範寫入與讀取物件、呼叫 writeObject/ readObject 時「底層」發生了什麼,以及常見錯誤(不可序列化的欄位、內部類別、 static 欄位的行為,以及透過 serialVersionUID 管理的類別版本)。
    可用
  • 標準序列化格式:二進位與文字

    JAVA 25 SELF
    等級 42,課程 2
    在本講座中,我們將比較 Java 的二進位序列化(透過類別 ObjectOutputStream 與 ObjectInputStream)與文字格式( JSON、 XML):工作原理、速度與緊湊度、版本相容性與安全性。我們會解析優缺點,示範使用 Jackson(包含 Maven 依賴),並提供何時該用哪一種的建議,以及常見錯誤。
    可用
  • ObjectOutputStream、ObjectInputStream:操作串流

    JAVA 25 SELF
    等級 42,課程 3
    本講座說明如何使用成對的串流 ObjectOutputStream 與 ObjectInputStream 在 Java 中序列化與反序列化物件:什麼是標記介面 java.io.Serializable,方法 writeObject() 與 readObject() 如何運作,為什麼欄位 static 與 transient 不會進入串流,可能遇到哪些例外( NotSerializableException、 InvalidClassException),以及 serialVersionUID 的影響。實作部分會將單一物件與物件清單序列化到檔案,並解析常見錯誤。
    可用
  • 集合的序列化:List、Map、Set

    JAVA 25 SELF
    等級 42,課程 4
    關於在 Java 中序列化集合的實用指南:如何透過 ObjectOutputStream/ ObjectInputStream 儲存與還原 List、 Map、 Set;為什麼大多數集合已經實作了 Serializable;對元素的要求; HashSet/ HashMap 的順序行為;處理巢狀與空集合;潛在陷阱( InvalidClassException、 serialVersionUID、 transient/ static)。最後以一個「虛擬圖書館」的完整範例收尾。
    可用
  • 控制序列化流程:writeObject、readObject

    JAVA 25 SELF
    等級 43,課程 0
    如何攔截預設序列化並將流程掌握在自己手中:使用具嚴格簽名的私有方法 writeObject/ readObject( private void writeObject( ObjectOutputStream out) throws IOException),呼叫 defaultWriteObject()/ defaultReadObject(),透過 transient 排除欄位、加入校驗和與日誌,並且別忘了 serialVersionUID 與版本相容性。解析常見錯誤、與 ObjectOutputStream/ ObjectInputStream 的配合,以及實務範例。
    可用
  • transient 欄位、serialVersionUID

    JAVA 25 SELF
    等級 43,課程 1
    Java 序列化實用指南:何時以及如何使用 transient 將欄位排除在串流之外;反序列化時會發生什麼事(預設值);如何在 readObject 方法中還原狀態;什麼是 serialVersionUID、如何宣告( private static final long serialVersionUID = 1L)、何時需要變更,以及為什麼最好明確指定。包含可運作的範例、風險情境與常見錯誤。
    可用
  • 1
  • ...
  • 18
  • 19
  • 20
  • 21
  • 22
  • ...
  • 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