Вероятно, это «дубликат», но я не знаю, как искать этот вопрос...
Я инициализирую нестатическую переменную-член в строке объявления:
public class A
{
private B b = new B();
...
}
Я делаю это вместо того, чтобы инициализировать эту переменную внутри конструктора по умолчанию:
public class A
{
private B b;
public A()
{
b = new B();
}
...
}
Есть ли какая-либо разница между ними, за исключением (возможно) того, что первый не является «ANSI Java» или что-то в этом роде?
Я получаю два разных байт-кода (т. е. два разных файла «класса») для двух приведенных выше реализаций, что наводит меня на мысль, что могут быть различия во время выполнения.
Поэтому я хотел бы знать, есть ли у меня основания ожидать чего-то другого во время выполнения.
Спасибо