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

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • 巢狀物件的序列化:特點

    JAVA 25 SELF
    等級 44,課程 0
    在本講座中,我們將說明 Java 如何對物件圖執行深度序列化:引用欄位會發生什麼事、為什麼所有巢狀物件都必須實作 Serializable、如何避免 NotSerializableException,以及在哪些情況下 transient 修飾詞能派上用場。我們將以範例示範含巢狀結構、集合以及循環參照的物件之序列化/反序列化,並解析與 serialVersionUID 以及大型物件圖相關的常見錯誤。
    可用
  • 巢狀與階層式物件:物件圖的序列化

    JAVA 25 SELF
    等級 44,課程 1
    Java 如何序列化複雜的資料結構:從巢狀的集合與繼承階層到循環的物件圖。我們將說明為什麼 Map<String, List<Book>> 的序列化可行、在 List<Animal> 中如何保留實際的子類型、遇到循環時參照機制如何運作,以及常見的陷阱。我們也會談到 ObjectOutputStream/ ObjectInputStream 的角色、 writeObject/ readObject 方法、 serialVersionUID 欄位與 transient 修飾詞。
    可用
  • 循環參照的問題:偵測與處理

    JAVA 25 SELF
    等級 44,課程 2
    說明什麼是物件圖中的循環參照、它們為何對序列化有風險,以及如何應對。展示 Java 標準串流 — ObjectOutputStream/ ObjectInputStream — 如何自動追蹤已遇到的物件並寫入引用(handles),避免 StackOverflowError。也會解析自訂序列化( writeObject/ readObject、 defaultWriteObject/ defaultReadObject)的陷阱,以及在 JSON 中處理循環的策略:註解 @JsonIdentityInfo、 @JsonBackReference/ @JsonManagedReference,透過 transient 排除欄位,以及使用識別碼。
    可用
  • 二進位序列化中的物件同一性

    JAVA 25 SELF
    等級 44,課程 3
    Java 如何在二進位序列化時保留並恢復物件的同一性:為什麼透過 a. equals( b) 的等價性不等於同一性( a == b), ObjectOutputStream/ ObjectInputStream 如何追蹤物件圖,並寫入「重複引用」而不是重複物件,為何在循環引用時仍能正確運作,以及 writeReplace() 與 readResolve() 如何影響最終的同一性。搭配範例解析:循環、共享引用、實作與常見錯誤。
    可用
  • 解析集合序列化的常見錯誤

    JAVA 25 SELF
    等級 44,課程 4
    在本講座中,我們會剖析序列化集合時最常見的問題:從 java.io.NotSerializableException(當元素未實作 Serializable)與泛型陷阱導致的 ClassCastException,到因 serialVersionUID 造成的類別版本不相容。我們也會談到不可變集合的細節( List.of()、 Set.of()、 Map.of())、 transient/ static 欄位的行為,以及關於效能與檔案大小的議題,其中串流式寫入與壓縮( GZIPOutputStream)能派上用場。你將獲得實用建議、程式碼範例,以及關於安全反序列化的建議( readObject/ writeObject)。
    可用
學習
  • 註冊
  • 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