Что такое передача в поток в Serializable

«Что такое передача в поток в Serializable» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Serializable — это интерфейс-маркер в Java, позволяющий объектам сериализоваться (превращаться в поток байтов) для передачи между процессами или сохранения.

Особенности:

  • Простая реализация (достаточно имплементировать интерфейс).
  • Автоматическая сериализация всех не-static и не-transient полей.
  • Медленнее Parcelable из-за рефлексии и создания лишних объектов.

Пример:

public class User implements Serializable {
    private String name;
    private transient int age; // Не будет сериализовано
}

Проблемы:

  • Нет контроля над процессом сериализации (может привести к ошибкам при изменении класса).
  • Версионность требует ручного управления (serialVersionUID).

Используйте для простых сценариев, но предпочитайте Parcelable для Android.