对象初始化顺序

/**
 * 对象初始化过程:
 * 1. 初始化static变量
 * 2. 执行static代码块
 * 3. 初始化非static变量
   4. 执行非static代码块
 * 4. 父类无参构造函数
 * 5. 子类构造函数
 * 
 * 6. 直接调用类的静态方法执行顺序是:
 *    1)初始化static变量
 *    2)执行static代码块
 *    3)执行静态方法  
 * 
 *
 */

 

package com.huawei.src;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by blood8119 on 2019/7/16.
 */
public class MyBean {

    private String name;
    public  List lists1 = new ArrayList(){{
        System.out.println("787878787878");
    }};
    public static List lists = new ArrayList();

    public MyBean() {
        System.out.println("===========MyBean======");
    }

    static {
        System.out.println("+++++++++++++");
        lists.add("fdasfdasfdsa1");
        lists.add("fdasfdasfdsa2");
        lists.add("fdasfdasfdsa3");
        lists.add("fdasfdasfdsa4");
        lists.add("fdasfdasfdsa5");
    }

    {
        System.out.println("++++++++++++++++1212121+");
    }

    public static void foo()
    {
        System.out.println("{}{}{}{}{}");
    }

    public static void main(String[] args) {
        //MyBean.foo();
        System.out.println("****************");
        MyBean myBean = new MyBean();
        //MyBean myBean2 = new MyBean();

        //System.out.println(lists.size());
        MyBean.foo();
        MyBean.foo();

    }
}

 

你可能感兴趣的:(对象初始化顺序)