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块中的代码只运行一次。仅仅一次!