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