java初始化顺序

java中静态变量,实例变量,构造函数的执行顺序是怎样的呢?下面通过代码来试验一下。

/**
 *@Author Easzz
 *@date 2016年5月27日下午3:46:20
 */
public class Test {
    public static void main(String[] args) {
        Order order=new Order();
    }
}
 class Order {
    int a=1;
    static int b=1;
    {
        System.out.println("实例变量a="+a);
        System.out.println("代码块执行!");
    }
    static{
        System.out.println("静态变量b="+b);
        System.out.println("静态代码块执行!");
    }
    public Order() {
        // TODO Auto-generated constructor stub
        System.out.println("构造函数执行!");
    }
}

输出结果为:

静态变量b=1
静态代码块执行!
实例变量a=1
代码块执行!
构造函数执行!

执行顺序为:

静态变量初始化→静态代码块→初始化静态方法→初始化实例变量→代码块→构造方法

你可能感兴趣的:(java基础)