CodeGym
AI Academy
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 嵌套对象的序列化:特点

    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)的推荐做法。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • 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