public class StaticM {
public static Integer i;
public MM a = new MM();
static {
i = 10;
System.out.println("sss");
i--;
}
public static void pp(){
new StaticM().new MM().p();
}
class MM{
public MM(){
i--;
System.out.println("mm"+i);
}
public void p(){
System.out.println("ppp");
}
}
}上面的代码 在运行时候 创建了几个实例,MM类就也得创建几个实例。
而static块中的代码只运行一次。仅仅一次!
本文探讨了Java中静态代码块的执行机制及其与类实例创建的关系。通过具体示例说明了静态代码块仅在类首次加载时执行一次,而实例创建则与构造函数调用次数相关。
1125

被折叠的 条评论
为什么被折叠?



