package com.rainy.main; import java.util.ArrayList; import java.util.List; public class Test extends A { static List<Object> p = new ArrayList<Object>(); static { p.add(new Object()); } public static void main(String[] args) { System.out.println(p.size()); System.out.println(l.size()); } } class A { static List<Object> l = new ArrayList<Object>(); static { l.add(new Object()); } }
可以看出,当进入main方法之前,将先执行类中的static,并且,static的执行顺序为先执行父类的static 接着执行子类的static