黑马程序员技术交流社区

标题: java类的初始化顺序 [打印本页]

作者: chen20134    时间: 2014-3-16 12:06
标题: java类的初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序是什么?我们也可以通过下面的测试代码来验证这一点:
  1. public class Test04
  2. {
  3.        
  4.         public static String staticField = "静态变量";// 静态变量
  5.        
  6.         public String field = "变量";// 变量
  7.        
  8.         static
  9.         {
  10.         System.out.println(staticField);
  11.         System.out.println("静态初始化块");
  12.         }// 静态初始化块
  13.        
  14.         {
  15.         System.out.println(field);
  16.         System.out.println("初始化块");
  17.         }// 初始化块
  18.        
  19.         public Test04()
  20.         {
  21.         System.out.println("构造器");
  22.         }// 构造器
  23.        
  24.         public static void main(String[] args)
  25.         {
  26.         new Test04();
  27.         }
  28. }
复制代码


运行以上代码,我们会得到如下的输出结果:
1. 静态变量
2. 静态初始化块
3. 变量
4. 初始化块
5. 构造器

可以得出结论:它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。
作者: 2528870651    时间: 2014-3-16 14:22
嗯嗯  刚刚复习这里了!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2