public class A{
public static void main(String[] args) throws ClassNotFoundException {
System.out.println(D.b); //3
}
}
class D{
public static int b=2;
public static D d=new D();
public D() {
b++;
System.out.println("构造执行了");
}
}
案例二
public class A{
public static void main(String[] args) throws ClassNotFoundException {
System.out.println(D.b); //2
}
}
class D{
public static D d=new D();
public static int b=2;
public D() {
b++;
System.out.println("构造执行了");
}
}
案例三
public class A{
public static void main(String[] args) throws ClassNotFoundException {
//System.out.println(D.a); //对于调用final修饰静态常量,不会触发类的初始化操作,跟实例化没关系,因此static代码块不会执行
System.out.println(D.b); //没有final修饰的静态变量,会触发类的初始化操作,跟实例化没关系,因此static代码块会执行
}
}
class D{
public final static int a=1;
public static int b=2;
public D() {
System.out.println("构造执行了");
}
static {
System.out.println("ddddddddddddd");
}
public static void d1(){
System.out.println("d11111111111");
}
public final static void d2(){
System.out.println("d2222222222222");
}
}



