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

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • 控制序列化流程: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)、何時需要變更,以及為什麼最好明確指定。包含可運作的範例、風險情境與常見錯誤。
    可用
  • Externalizable:序列化的精細調校

    JAVA 25 SELF
    等級 43,課程 2
    擴充 Java 的基本序列化:當 Serializable 的自動化機制不夠用時,可以改用手動的 Externalizable 合約,搭配 writeExternal/ readExternal 方法。在本講解中,我們會說明如何完全控制資料格式、縮小檔案大小並維持向後相容性,並與 ObjectOutputStream/ ObjectInputStream 流比較,展示範例、優缺點與常見錯誤(必須的 public 無參數建構子、寫入/讀取順序等)。
    可用
  • 調整序列化行為:自訂方法

    JAVA 25 SELF
    等級 43,課程 3
    在本講座中,我們說明如何藉由方法 writeReplace 與 readResolve 影響 Java 的序列化與反序列化流程:為什麼要以代理物件取代原物件、如何維持單例、如何處理不可變物件,以及這與 writeObject/ readObject 的關係。逐步實作、流程圖(Mermaid)與常見錯誤解析。
    可用
  • 序列化安全:最佳實務

    JAVA 25 SELF
    等級 43,課程 4
    Java 安全序列化實用指南:為何來自不受信任來源的反序列化很危險、如何使用 ObjectInputFilter、關鍵字 transient、明確指定 serialVersionUID、透過 instanceof 進行型別檢查,以及替代的交換格式(JSON/Proto)來防護。內文—直觀的程式碼範例、允許類別的過濾,以及對常見錯誤的解析。
    可用
學習
  • 註冊
  • 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