Когда поля * stati c инициализируются в Java? - PullRequest
0 голосов
/ 21 января 2020

В этой базовой c реализации Singleton, когда происходит вызов new Singleton1() (отмечен *?

public final class Singleton1 {

    private Singleton1() { }

    private static Singleton1 instance = new Singleton1(); // (*) When does this happen?
                                                           //     Before calling getInstance() from the client?

    public static Singleton1 getInstance() {
        return instance;
    }
}

1 Ответ

3 голосов
/ 21 января 2020
Поля

Stati c заполняются при первой загрузке класса JVM (см. JLS 12.4 ). Так что да, instance будет заполнено до вызова getInstance().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...