Sobes.tech
Junior — Middle

Can you list the main interfaces used for object serialization in Java?

sobes.tech AI

Answer from AI

In Java, several core interfaces are used for object serialization:

  • Serializable

    • Marker interface (no methods), indicating that an object can be serialized by Java's default mechanism.
    • Used for converting an object to a byte stream and vice versa.
  • Externalizable

    • Extends Serializable and requires implementation of writeExternal(ObjectOutput out) and readExternal(ObjectInput in).
    • Allows complete control over the serialization process.
  • java.beans.XMLEncoder/XMLDecoder

    • Used for serializing objects to XML format and back.
  • Custom Serialization

    • Classes can implement private void writeObject(ObjectOutputStream out) and private void readObject(ObjectInputStream in) to customize serialization.

Example of simple serialization with Serializable:

import java.io.*;

public class Person implements Serializable {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

// Serialization
Person p = new Person("Ivan", 30);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"))) {
    oos.writeObject(p);
}

// Deserialization
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.dat"))) {
    Person p2 = (Person) ois.readObject();
}

Thus, the key interfaces for serialization in Java are Serializable and Externalizable.

Can you list the main interfaces used for object… - sobes.tech