类内部变量的初始化顺序

一:构建器初始化顺序

 1 package com.var.sort;
 2 
 3 
 4 class A{
 5     A(int i){
 6         System.out.println("A("+i+")");
 7     }
 8 }
 9 
10 
11 
12 /***
13  * 这个类用来测试类内部成员变量(基本类型的变量+引用类型的变量)初始化的顺序
14  * 实事证明:
15  *     初始化的顺序是由变量在类内部的定义顺序决定的,
16  *     即使变量的定义大量的分布于类内部的各个方法(包括构建器)之间
17  *     那些变量仍然会在调用任何方法之前得到初始化--甚至在构造器调用之前
18  * @author Administrator
19  *
20  */
21 public class VarSortTest {
22     A a1 = new A(1);
23     VarSortTest(){
24         System.out.println("VarSortTest()");
25         a3 = new A(33);
26     }
27     A a2 = new A(2);
28     
29     void f(){
30         System.out.println("f()");
31     }
32     A a3 = new A(3);
33     public static void main(String[] args) {
34         VarSortTest v = new VarSortTest();
35         v.f();
36     }
37 }

输出结果

A(1)
A(2)
A(3)
VarSortTest()
A(33)
f()

 

二:静态数据的初始化

未完待续。。。

 

posted @ 2019-02-13 17:04  小摩托~  阅读(204)  评论(0)    收藏  举报