-JAVA 程序员 JAVA 工程师面试必看
JAVA 面试题解惑系列(一)——类的初始化顺序
关键字
: java
面试题 初始化
作者:臧圩人(zangweiren)
网址:http://zangweiren.javaeye.com
>>>转载请注明出处!<<<
大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只
有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出
到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了
解。
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态
变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:
Java
代码
1. public class InitialOrderTest {
4. public static String staticField = "静态变量";
6. public String field = "
变量
";
10. System.out.println(staticField);
11. System.out.println("静态初始化块");
16. System.out.println(field);
17. System.out.println("
初始化块
");
21. public InitialOrderTest() {
22. System.out.println("
构造器
");
25. public static void main(String[] args) {
26. new InitialOrderTest();
运行以上代码,我们会得到如下的输出结果: