public class Test implements ITest {
private List schoolList = new ArrayList();
public Test() {
super();
}
}
和
public class Test implements ITest {
private List schoolList ;
public Test() {
super();
schoolList = new ArrayList<School>();
}
}
有什么区别吗?两者相比有什么优劣之处吗
jvm初始化的顺序问题,至于优劣看场景吧,看下代码便知:
public class Demo {
private Inner inner = new Inner("field");
static {
new Inner("static block");
}
public Demo() {
this.inner = new Inner("constructor");
}
public static void main(String[] args) {
new Demo();
}
}
class Inner{
public Inner(String place) {
System.out.println("inited in " + place);
}
}
类的初始化顺序,你可以去了解下。