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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 控制序列化流程: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 的关系。包含循序渐进的实操、操作流程图与典型错误解析。
    可用
  • 序列化安全:最佳实践

    JAVA 25 SELF
    等级 43,课时 4
    Java 安全序列化实用指南:为何来自不可信来源的反序列化具有危险性,如何借助 ObjectInputFilter、关键字 transient、显式的 serialVersionUID、通过 instanceof 的类型检查,以及替代交换格式(JSON/Proto)进行防护。其中包含直观的代码示例、允许类的白名单过滤以及对典型错误的解析。
    可用
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