Junior
83
questionbank

Что такое сериализация?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Сериализация — это процесс преобразования объекта в последовательность байтов для его сохранения или передачи. Десериализация — обратный процесс: восстановление объекта из этой последовательности.

В Android часто используется для:

  • Передачи данных между Activity/Fragment через Intent (реализация Parcelable).
  • Сохранения состояния пользовательского интерфейса.
  • Хранения данных в SharedPreferences или файлах.
  • Передачи данных по сети (например, JSON, Protobuf).

Основные механизмы в Android:

  • Serializable: Стандартный Java-интерфейс. Простой в реализации, но медленнее и создает больше мусора по сравнению с Parcelable. Использует рефлексию.
  • Parcelable: Android-специфичный интерфейс. Быстрее и эффективнее для межпроцессного взаимодействия (IPC). Требует ручной реализации методов writeToParcel() и createFromParcel().
  • JSON/XML: Для передачи данных по сети. Требуют библиотек для парсинга (например, GSON, Jackson, Moshi).

Пример использования Parcelable:

kotlin

(используя @Parcelize плагин Kotlin)

Пример использования Serializable:

java

Выбор между Serializable и Parcelable зависит от задачи. Для IPC предпочтительнее Parcelable. Для сохранения объектов на диск или передачи по сети часто используют JSON/XML. Serializable удобен для простых случаев, но имеет недостатки в производительности.