> -- kemiisto писал(а):
> Только это не конструктор по-умолчанию, а нестатический блок инициализации (non-static initializer block). И код, который в нём находиться компилятор копирует во все конструкторы. Используется для недопущения "копи-пасты" между разными конструкторами.Слишком уж Вам "зелёный" Джавист попался.

Борьба с копипастой это конечно хорошо, но, с другой стороны, что мешает общую для всех конструкторов часть оформить в виде отдельной функции?

Зачем оно в виде безъимянных блоков то сделано? Чтобы предотвратить использование этого кода вне конструкторов (т.е. сделать невозможным явный вызов)? А зачем дали возможность разбивать это на несколько блоков?

Судя по тому что "зеленый" джавист об этом вообще понятия не имел, а сильно не зеленый, который мне объяснял что же это такое, сказал сперва что это будет конструктор по умолчанию (правда потом нарыл какую-то доку и сказал что там не все так просто), эта фича используется редко, она не очевидна => потенциального вреда от нее больше чем пользы.