在正确初始化类之前(即已评估静态字段和静态块),您无法在类中调用main方法。初始化后,将通过调用私有构造函数来创建您的单例实例。稍后调用main方法。
有问题的类具有一个静态字段,您可以在该字段中添加值。由于该字段是静态的,因此必须先初始化该字段,然后才能在任何上下文中使用该类,也就是说,它必须接收一个值。在这种情况下,其值恰巧是同一类的实例。这就是在类初始化期间触发您的私有构造函数的原因。
如果您想深入研究过程并更好地理解它,请参考Java
Laguage规范。更具体地说,在第12.4节“类和接口的初始化”中,您将找到更多详细信息。



