Java中静态块,静态成员变量,构造块,普通成员变量,构造方法的执行顺序

来源:互联网 发布:人人商城 源码 编辑:程序博客网 时间:2024/05/10 09:53
优先级从高到低类别是否执行只执行一次 1静态成员变量只在类第一次被加载时执行一次静态太代码块2普通成员变量每次创建类的对象时都执行普通代码快3构造方法每次创建类的对象时都执行 **同优先级的按照出现顺序依次执行**
import org.junit.Test;public class FuckFilterTest {    @Test    public void shunxu() {        classB b = new classB();        System.out.println("-------------------");        classB b2 = new classB();    }}class classB {    public classB() {        System.out.println("构造方法");    }    private static classA s1 = new classA("静态成员变量1");    private classA f1 = new classA("普通成员变量1");    {        System.out.println("构造代码块1");    }    static {        System.out.println("静态块1");    }    {        System.out.println("构造代码块2");    }    private classA f2 = new classA("普通成员变量2");    private static classA s2 = new classA("静态成员变量2");    static {        System.out.println("静态块2");    }}// 只用作测试class classA {    classA(String desc) {        System.out.println(desc);    }}
静态成员变量1静态块1静态成员变量2静态块2普通成员变量1构造代码块1构造代码块2普通成员变量2构造方法-------------------普通成员变量1构造代码块1构造代码块2普通成员变量2构造方法
0 0