Возможный дубликат:
Инициализация статического класса Java
Почему переменная строки обновляется в блоке инициализации, а не целое число (даже если блок написан первым)
class NewClass
{
static
{
System.out.println(NewClass.string+" "+NewClass.integer);
}
final static String string="static";
final static Integer integer=1;
public static void main(String [] args)//throws Exception
{
}
}
Мой вывод
static null
P.S: Также заметили, что инициализация строковой переменной происходит перед блоком только тогда, когда я вставляю последний модификатор. почему это так? почему бы и не целое число? Я также объявил его окончательным статистом