Что такое Serializable

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

Ответ

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

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

  • Прост в использовании (не требует реализации методов).
  • Медленнее и создает больше накладных расходов по сравнению с Parcelable.
  • Подходит для простых случаев, например, передачи данных через Intent.

Пример:

public class User implements Serializable {
    private String name;
    private int age;

    // Конструктор, геттеры, сеттеры...
}

// Сериализация
User user = new User("Alice", 25);
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("user", user);