0Pricing
Java Academy · 课时

序列化基础

理解 Java 序列化基础:Serializable 接口、ObjectOutputStream 和 ObjectInputStream。

序列化基础 是 CoddyKit 上的免费 Java Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 3 节课。

简介

序列化是指将对象的状态保存到文件或流中,并在之后恢复。它常用于持久化或传输对象。

可序列化接口

类必须实现 java.io 中的可序列化接口,其对象才能被序列化。这是一个没有方法的标记接口。

代码:可序列化类

这里的 Person 实现了可序列化接口,因此可以使用 ObjectOutputStream 写入。

import java.io.Serializable;
public class Main {
  static class Person implements Serializable {
    String name;
    int age;
    Person(String n, int a) { name = n; age = a; }
    public String toString() { return name + "(" + age + ")"; }
  }
  public static void main(String[] args) {
    Person p = new Person("Ada", 30);
    System.out.println("Created: " + p);
  }
}

ObjectOutputStream

ObjectOutputStream 会将对象写入文件。文件中将保存对象的二进制形式。

代码:写入对象

这段代码会将 Person 对象写入名为 person.ser 的文件。

import java.io.*;
public class Main {
  static class Person implements Serializable {
    String name; int age;
    Person(String n,int a){name=n;age=a;}
  }
  public static void main(String[] args) {
    Person p = new Person("Bob",25);
    try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
      out.writeObject(p);
      System.out.println("Object written");
    } catch(IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

代码:读取对象

这段代码会从文件中读回 Person 对象并将其打印出来。

import java.io.*;
public class Main {
  static class Person implements Serializable {
    String name; int age;
    Person(String n,int a){name=n;age=a;}
    public String toString(){return name+"("+age+")";}
  }
  public static void main(String[] args) {
    try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("person.ser"))) {
      Person p = (Person) in.readObject();
      System.out.println("Read: " + p);
    } catch(Exception e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

序列化检查

快速检查:类必须执行什么操作才能实现序列化?

回顾

回顾:序列化使用 ObjectOutputStream 保存对象,并使用 ObjectInputStream 恢复对象。类必须实现可序列化接口。

常见问题解答

「序列化基础」课时是免费的吗?

是的 — 「序列化基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 3 节课。

「序列化基础」这节课中我会学到什么?

理解 Java 序列化基础:Serializable 接口、ObjectOutputStream 和 ObjectInputStream。 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。

「序列化基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 序列化基础
  2. 简单 CSV/JSON 处理
  3. 遍历文件与实用工具
← 返回 Java Academy