Какие знаешь объекты, которые поддерживают сериализацию

«Какие знаешь объекты, которые поддерживают сериализацию» — вопрос из категории Сети, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android поддерживают сериализацию следующие объекты:

  1. Parcelable – более производительный аналог Serializable, оптимизированный под Android.
data class User(val name: String, val age: Int) : Parcelable {  
    override fun writeToParcel(parcel: Parcel, flags: Int) {  
        parcel.writeString(name)  
        parcel.writeInt(age)  
    }  
    // ...  
}  
  1. Serializable – стандартный Java-интерфейс, но менее эффективный из-за рефлексии.
data class User(val name: String, val age: Int) : Serializable  
  1. Bundle – используется для передачи данных между компонентами (Activity, Fragment).

  2. JSON (Gson, Moshi, kotlinx.serialization) – текстовые форматы для сетевых запросов и хранения.

  3. SharedPreferences – для простого хранения примитивов и строк.

Parcelable предпочтительнее для передачи между компонентами, а Serializable удобен, если нужна совместимость с Java/Kotlin вне Android.