Назад к вопросам
Junior — Middle
67
Можешь перечислить основные интерфейсы, используемые для сериализации объектов в Java?
Компании, где спрашивали
Hftlabs
Ответ от нейросети
sobes.tech AI
В Java для сериализации объектов используются несколько основных интерфейсов:
-
Serializable
- Маркерный интерфейс (не содержит методов), который указывает, что объект может быть сериализован стандартным механизмом Java.
- Используется для преобразования объекта в поток байтов и обратно.
-
Externalizable
- Расширяет Serializable и требует реализации методов
writeExternal(ObjectOutput out)иreadExternal(ObjectInput in). - Позволяет полностью контролировать процесс сериализации и десериализации.
- Расширяет Serializable и требует реализации методов
-
java.beans.XMLEncoder/XMLDecoder\n - Используются для сериализации объектов в XML-формат и обратно.
-
Custom Serialization
- Классы могут реализовать методы
private void writeObject(ObjectOutputStream out)иprivate void readObject(ObjectInputStream in)для настройки процесса сериализации.
- Классы могут реализовать методы
Пример простейшей сериализации с 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;
}
}
// Сериализация
Person p = new Person("Ivan", 30);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"))) {
oos.writeObject(p);
}
// Десериализация
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.dat"))) {
Person p2 = (Person) ois.readObject();
}
Таким образом, ключевыми интерфейсами для сериализации в Java являются Serializable и Externalizable.