类加载和初始化测试
最近在看类初始化的过程觉得比较有意思,整理了这样一个题目
测试类
public static class Dog { //构造方法 public Dog() { System.out.println("构造方法代码块"); } // 常量 public static final int finalNumber = 1; // static代码块 static { System.out.println("static code"); } // static 变量 static int staticNumber = 2; // 普通代码块 { System.out.println("非static code "); } // 普通变量 public int normalNumber = 3; }
题目
分别执行(不是顺序执行)下面几段代码会输出什么
案例1
public static void main(String[] args) { System.out.println(Dog.finalNumber); }
案例2
public static void main(String[] args) { System.out.println(Dog.staticNumber); }
案例3
public static void main(String[] args) { Dog dog = new Dog(); System.out.println(dog.normalNumber); }#八股文##java基础知识##类加载#