java-关于静态代码块和构造方法的执行顺序的探讨
下面以一个小demo为例进行探讨



运行结果:
class A static
class B static
I'm A class
class A
I'm B class
class B
由此可见:执行顺序是:静态初始化块 -> 初始化块 -> 构造方法
=========================================================
package com.algorithm;
public class Animal {
private int count;
public int getCount() {
return count;
}
}
package com.algorithm;
public class Panada {
public static void main(String[] args) {
Animal animal = new Animal();
System.out.println("========"+animal.getCount());
}
}
运行结果:0
package com.algorithm;
public class Animal {
private static int count;
public static int getCount() {
return count;
}
}
package com.algorithm;
public class Panada {
public static void main(String[] args) {
System.out.println("========"+Animal.getCount());
}
}
运行结果:0
package com.algorithm;
public class Animal {
private static int count;
static {
count=2;
}
public static int getCount() {
return count;
}
}
package com.algorithm;
public class Panada {
public static void main(String[] args) {
System.out.println("========"+Animal.getCount());
}
}
运行结果:2
浙公网安备 33010602011771号