Инициализация в определении против инициализации в конструкторе [дубликат]

На этот вопрос уже есть ответ здесь:

Каковы лучшие практики для определения задач методов Конструктор, Инициализация и Сброс 5 ответов

В Java, но также и в других языках OO, есть разница между инициализацией атрибута в его определении, как в

class Example {
    public Sample sample_attribute = new Sample();
}

и используя конструктор для его инициализации?

class Example {
    public Sample sample_attribute;

    public Example() {
        sample_attribute = new Sample();
    }
}

Я не мог придумать никакой практической разницы, есть ли такая? Иначе, есть ли случаи, когда один метод лучше, чем другой, даже если они имеют одинаковый результат?

Ответы на вопрос(3)

Ваш ответ на вопрос