Sobes.tech
Назад к вопросам
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();
}

Таким образом, сериализация позволяет сохранить состояние объекта, а десериализация — восстановить его из сохранённых данных.