静态成员只有被引用(首次生成所在类的对象或者被首次访问,即使从为生成过那个类的对象)的时候才会初始化。
一般情况下Java成员变量初始化顺序是,静态成员/静态快->直接初始化的类成员->构造函数
一个简单的例子如下:
Cup.java
public class Cup {
public Cup(int i)
{
System.out.println("constructor" + i);
}
}
TestJava.java public class TestJava { public Cup cup; public Cup cup3 = new Cup(3); public static Cup cup1 = new Cup(1); public static Cup cup2; static{ cup2 = new Cup(2); } public TestJava(){ cup = new Cup(0); } public static void main(String[] args) { new TestJava(); } }
执行结果是
constructor1
constructor2
constructor3
constructor0
PREVIOUSEffective C++ 读书笔记
NEXT转载王垠的一段话