java静态代码块和代码块执行顺序
先执行 static方法,再执行普通方法,最后执行构造方法。
eg:
package other;
class B {
public B() {
super();
System.out.println("构造器B");
}
{
System.out.println("普通的代码块B");
}
static {
System.out.println("静态代码块B");
}
}
public class StaticDemo extends B {
public StaticDemo() {
// super();
System.out.println("构造器-StaticDemo");
}
{
System.out.println("普通的代码块-StaticDemo");
}
static {
System.out.println("静态代码块-StaticDemo");
}
//
public static void main(String[] args) {
StaticDemo a = new StaticDemo();
}
}
run:
静态代码块B
静态代码块-StaticDemo
普通的代码块B
构造器B
普通的代码块-StaticDemo
构造器-StaticDemo