Java笔试题学习之04

版权声明:欢迎转载,期待指正 https://blog.csdn.net/fighting_sxw/article/details/89739115
public class Test4 {
    public static Test4 t1=new Test4();
    {
        System.out.println("blockA");
    }

    static {
        System.out.println("blockB");
    }

    public static void main(String[] args) {
        Test4 t2=new Test4();
    }
}

输出:
blockA
blockB
blockA

分析:

  1. 创建对象之前 要先加载类,所以先加载Test4这个类
  2. 类加载需要加载静态属性和执行静态块,所以先创建Test4的对象 t1
  3. 创建对象需要执行匿名块,所以先打印出blockA
  4. 继续加载类,执行静态块 打印blockb
  5. 继续创建t2对象,执行匿名块打印blockA

总结:
匿名块依赖于对象、静态块依赖于类、创建对象之前,需要先加载类

ps:从大佬的抖音直接搬运过来,抖音号:Todaystart,不妥之处,还望指正!

猜你喜欢

转载自blog.csdn.net/fighting_sxw/article/details/89739115