1
标题可能不容易理解,但基本上我已经看到了这一点在一些程序中,我很好奇它,清除事情我简化了代码,以在某种程度上我们可以专注于我的问题。混淆与关键字静态与括号在一个类
public class A {
public A() {
System.out.println("constructor");
}
static{
System.out.println("static");
}
}
-
public class B {
public static void main(String[] args) {
A a = new A();
}
}
当我运行代码的输出是:
静态
构造
究竟是什么这个静态W¯¯第i个括号?从外观看来,它似乎是在使用类时运行括号内的代码,但为什么存在如果我们有构造函数?我们不能把我们需要在构造函数里面初始化的代码放进去吗?并且它似乎在构造函数之前运行它的代码,因为static这个词在构造函数之前出现,为什么这样呢?
它被称为静态初始化程序,它在您运行应用程序时运行。你甚至不需要它的一个实例。它与创建ENUM实例的范围相同(在此之后运行)。 – EpicPandaForce