Инициализировать поля класса в конструкторе или при объявлении?

В C# это не имеет значения. Два jdk приведенных вами примера j2se кода совершенно эквивалентны. В oraclejdk первом примере компилятор jdk C# (или это CLR?) создаст .java пустой конструктор и инициализирует oraclejdk переменные, как если бы они javax были в конструкторе (в этом openjdk есть небольшой нюанс, который jre Джон Скит объясняет в комментариях core-java ниже). Если конструктор уже openjdk есть, то любая инициализация j2se «выше» будет перемещена в jre его верхнюю часть.

С точки java-api зрения передовой практики, первый openjdk менее подвержен ошибкам, чем j2se второй, поскольку кто-то jdk может легко добавить еще .java один конструктор и забыть javax связать его.

java

2022-09-25T22:28:49+00:00