1  无继承情况下的Java初始化顺序:
class Sample
{
Sample(String s)
{
System.out.println(s);
}
Sample()
{
System.out.println("Sample默认构造函数被调用");
}
}
class Test{
static Sample sam=new Sample("静态成员sam初始化");
Sample sam1=new Sample("sam1成员初始化");
static{
System.out.println("static块执行");
if(sam==null)System.out.println("sam is null");
sam=new Sample("静态块内初始化sam成员变量");
}
Test()
{
System.out.println("Test默认构造函数被调用");
}
}
//主函数
public static void  main(String  str[])
{
Test a=new Test();
}
  输出结果为:
  静态成员sam初始化     -----静态成员初始化
  static块执行          -----静态块被执行
  静态块内初始化sam成员变量 ----静态块执行
  sam1成员初始化      -----普通成员初始化
  Test默认构造函数被调用  -----构造函数执行
  由此可以得出结论:
  a 静态成员变量首先初始化(注意,Static可以看做一个静态成员,其执行顺序和其在类中申明的顺序有关)
  b 普通成员初始化
  c 执行构造函数。