Gymterview
junior

Как исключить поля из сериализации?

Для исключения полей из сериализации используется ключевое слово transient. Поле, помеченное transient, пропускается при стандартной сериализации и при десериализации получает значение по умолчанию для своего типа (null, 0, false).

Пример
public class User implements Serializable {
    private String name;           // сериализуется
    private transient String password; // НЕ сериализуется
    private transient int cachedHash; // НЕ сериализуется
}

Другие способы исключения

Способ Применяется к
transient Стандартная Java-сериализация
Externalizable Полный контроль — не записываете поле вручную
@JsonIgnore Jackson (JSON-сериализация)
@Expose + excludeFieldsWithoutExposeAnnotation() Gson
@JsonbTransient Jakarta JSON-B

На собеседовании: достаточно назвать transient и объяснить, что после десериализации поле будет иметь значение по умолчанию. Если спрашивают про JSON — добавьте @JsonIgnore.