---
title: Влияние модификаторов
seo:
  title: Влияние модификаторов — Java Developer
  description: Тема «Влияние модификаторов» для собеседования Java Developer. Какое влияние оказывают на сериализуемость модификаторы полей static и final. В чем проблема сериализации Singleton?
---

[Все темы Java Developer](/java-developer)

## <strong>Какое влияние оказывают на сериализуемость модификаторы полей</strong> <code>static</code> <strong>и</strong> <code>final</code> [#q-14bee738d69b8160bdd0e48b0a519f26]

<strong>Модификатор</strong> <code>static</code>
<strong>&#58;</strong>

Поля <code>static</code> не сериализуются, поскольку они принадлежат классу, а не конкретному экземпляру объекта.

<strong>Модификатор</strong> <code>final</code>
<strong>&#58;</strong>

Поля <code>final</code> сериализуются как обычно. Их значение сохраняется при сериализации и восстанавливается при десериализации.

:::note[Ссылки для изучения]

1. [Сериализация в Java](https://javarush.com/groups/posts/2022-serializacija-i-deserializacija-v-java)
   :::

---

## <strong>В чем проблема сериализации</strong> <code>Singleton</code><strong>?</strong> [#q-14bee738d69b81a9b0ffe7d431ea9194]

Проблема сериализации <code>Singleton</code> в том, что при десериализации создается новый экземпляр класса, что нарушает принцип единственности экземпляра. Чтобы избежать этого, нужно реализовать метод <code>readResolve</code>, который возвращает существующий экземпляр.

<strong>Пример&#58;</strong>

```java
private Object readResolve() throws ObjectStreamException {
    return getInstance();
}
```

Это гарантирует, что при десериализации будет возвращен единственный экземпляр Singleton.

:::note[Ссылки для изучения]

1. [Сериализация в Java](https://javarush.com/groups/posts/2022-serializacija-i-deserializacija-v-java)
   :::
