Java 类加载顺序

新建一个Animal类如下:
 1 public class Animal {
 2     
 3     static int x1 = print("static animal x1");
 4     private int i = print("hello animal i");
 5     
 6     static{
 7         System.out.println("A1");
 8     }
 9     
10     public Animal(){
11         System.out.println("A2");
12     }
13 
14     static{
15         System.out.println("A3");
16         System.out.println("A4");
17     }
18     
19     {
20         System.out.println("A5");
21     }
22     
23     static int print(String str){
24         System.out.println(str);
25         return 2;
26     }
27     
28 }

 


然后新建一个Cat类如下:
 1 public class Cat extends Animal{
 2     
 3     private int j = print("hello j");
 4     static int x2 = print("static cat");
 5     
 6     static{
 7         System.out.println("B1");
 8     }
 9     
10     public Cat(){
11         System.out.println("B2");
12     }
13     
14     {
15         System.out.println("B3");
16     }
17     
18     static{
19         System.out.println("B4");
20     }
21     
22     public static void main(String[] args){
23         int i = 0;
24         i++;
25         Cat cat = new Cat();
26         cat.plus(i);
27         
28         System.out.println(i);
29         
30         
31     }
32     
33     public void plus(int i){
34         i++;
35         
36     }
37 
38 }

 

得到以下运行结果:

 

得出结论:

新建一个类时,加载顺序为:父类静态定义初始化>>>> 子类静态定义初始化 >>> 父类定义初始化 >>> 父类构造代码块初始化 >>> 父类构造方法初始化 >>> 子类定义初始化 >>> 子类构造代码块初始化 >>> 子类构造方法初始化。

posted @ 2015-11-03 15:05  *Zhou神Bu坑*  阅读(117)  评论(0)    收藏  举报