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)andreadExternal(ObjectInput in). - Allows complete control over the serialization process.
- Extends Serializable and requires implementation of
-
java.beans.XMLEncoder/XMLDecoder
- Used for serializing objects to XML format and back.
-
Custom Serialization
- Classes can implement
private void writeObject(ObjectOutputStream out)andprivate void readObject(ObjectInputStream in)to customize serialization.
- Classes can implement
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.