У меня есть простой код следующим образом:
Анонимный блок, действующий как статический блок
class TempClass
{
{
System.out.println("inside static...");
}
TempClass()
{
System.out.println("inside constructor...");
}
public static void main(String [] args)
{
new TempClass();
}
}
Он показывает результат, как: внутри статического ... внутри конструктора ...
Но когда я комментарий строка создания экземпляра, она показывает пустой вывод. Таким образом, он действует как статический блок всякий раз, когда есть вызов конструктора. Означает ли это, что запись static не является обязательной (когда экземпляр класса создается)?
Кто-нибудь знает что-нибудь о этом поведении?
Если бы это был статический блок, он бы отображал свой вывод даже без создания экземпляра класса, так как вы загружаете его для вызова main. Вы допускаете двойную ложь. – arjacsoh