Первоначально от anser Мирко Клемм, слегка измененный для решения вопроса:
Просто для полноты: существует также блок инициализации Instance , который выполняется всегда и до вызова любого другого конструктора. Он состоит просто из блока операторов "{...}" где-то в теле определения вашего класса. Вы можете даже иметь более одного. Вы не можете вызывать их, но они похожи на код «общего конструктора», если вы хотите повторно использовать некоторый код в конструкторах, подобно вызову методов.
Так в вашем случае
{
System.out.println("this is shared constructor code executed before the constructor");
field1 = 3;
}
Существует также «статическая» версия этого для инициализации статических членов: «static {...}»