java 中类的初始化顺序


//测试代码:

1
public class Test02 2 { 3 public Test02() 4 { 5 System.out.println("Test02"); 6 } 7 public static void main(String[] args) 8 { 9 Test03 test03= new Test03();   //1 10 //Test03.f(); //2 11 // System.out.println(Test03.i); //3 12 } 13 } 14 15 class Test03 16 { 17 static int i = 3; 18 static Test02 test02 = new Test02(); 19 Test01 test01 = new Test01(); 20 21 static 22 { 23 System.out.println("static"); 24 } 25 { 26 System.out.println("nostatic"); 27 } 28 static void f() 29 { 30 System.out.println("f()"); 31 } 32 33 public Test03() 34 { 35 System.out.println("Test03"); 36 } 37 }
执行1的结果如下:
Test02
static
Test01
nostatic
Test03
 
执行2的结果如下:
Test02
static
f()
 
执行3的结果如下:
Test02
static
3
 
结论如下:
1.创建对象时,需要对该对象所在的类进行初始化,初始化的顺序为:
    静态对象>静态代码块>一般对象>普通代码块>构造方法
 
2.当只是调用类的静态变量或静态方法时,此时只初始化静态行为,即:
    静态对象>静态代码块>静态变量(静态方法)
posted @ 2015-08-19 20:04  liangpipi322  阅读(149)  评论(0编辑  收藏  举报