Когда я запускаю эту программу, иногда получается, что 55 будет напечатано, хотя я уверен, что 6 - правильное поведение.
Или, может быть, я ошибался?
public class Test {
static int a = 55;
static {
a = 6;
}
public static void main(String abc[]){
// a is 6
System.out.println(a);
}
}
Редактировать
Я думаю, что Cularis понял это правильно, когда я изменил порядок статического блока, а также создание экземпляров и инициализацию, 55 напечатано. Это действительно в порядке текстуры.
public class Test {
static {
a = 6;
}
static int a = 55;
public static void main(String abc[]) {
// a is 55
System.out.println(a);
}
}