Назад к вопросам
Junior — Middle
80
Объясните механизм процесса преобразования объектов Java в поток байтов и обратно.
Компании, где спрашивали
Передовые Платежные Решения
Ответ от нейросети
sobes.tech AI
В Java процесс преобразования объектов в поток байтов называется сериализацией, а обратный процесс — десериализацией.
Сериализация:
- Объект преобразуется в последовательность байтов, которую можно сохранить в файл, передать по сети и т.д.
- Для этого класс объекта должен реализовывать интерфейс
Serializable. - Используется класс
ObjectOutputStream, который записывает объект в поток.
Десериализация:
- Поток байтов преобразуется обратно в объект.
- Используется класс
ObjectInputStreamдля чтения объекта из потока.
Пример:
import java.io.*;
class Person implements Serializable {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
// Сериализация
Person p = new Person("Иван", 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();
}
Таким образом, сериализация позволяет сохранить состояние объекта, а десериализация — восстановить его из сохранённых данных.