代码如下:class Bowl {
  Bowl(int er) {
    System.out.println("Bowl(" + er + ")");
  }
  void f(int er) {
    System.out.println("f(" + er + ")");
  }
}class Table {
  static Bowl b1 = new Bowl(1);
  Table() {
    System.out.println("Table()");
    b2.f(1);
  }
  void f2(int er) {
    System.out.println("f2(" + er + ")");
  }
  static Bowl b2 = new Bowl(2);
}class Cupboard {
  Bowl b3 = new Bowl(3);
  static Bowl b4 = new Bowl(4);
  Cupboard() {
    System.out.println("Cupboard()");
    b4.f(2);
  }
  void f3(int er) {
    System.out.println("f3(" + er + ")");
  }
  static Bowl b5 = new Bowl(5);
}public class StaticInitialization {
  
  public static void main(String[] args) {
    System.out.println("Creating new Cupboard() in main");
    new Cupboard();
    System.out.println("Creating new Cupboard() in main");
    new Cupboard();
    t2.f2(1);
    t3.f3(1);
    
  }
   static Table t2=new Table();
   static Cupboard t3=new Cupboard();
 
}能告诉我,它的执行过程吗?详细点为佳!希望兄弟们不吝啬赐教!

解决方案 »

  1.   

    Bowl(1)
    Bowl(2)
    Table()
    f(1)
    Bowl(4)
    Bowl(5)
    Bowl(3)
    Cupboard()
    f(2)
    Creating new Cupboard() in main
    Bowl(3)
    Cupboard()
    f(2)
    Creating new Cupboard() in main
    Bowl(3)
    Cupboard()
    f(2)
    f2(1)
    f3(1)
      

  2.   

    很明显 程序执行的时候 先进的是 public class StaticInitialization {}   在这个class里面你声明了 2个静态变量 程序会 按顺序执行这个 静态变量 ,首先执行static Table t2=new Table();  程序会去找 Table()这个构造函数 Table 里面有static Bowl b1 = new Bowl(1);
     程序同样去找 Bowl()的构造函数 class Bowl {} 所以 程序 第一句话打印了 Bowl(1),静态变量先执行 ,所以回到Table()中 ,程序先运行了static Bowl b2 = new Bowl(2); 打印出Bowl(2),在回到Table()中 执行Table() 这个构造,打印Table() 遇到b2.f(1)调用 class Bowl {} 中的方法 所以打印f(1)具体后面怎么执行  你自己慢慢调试下吧  我不多说了 
      

  3.   

    加载主类,执行mian函数
    在加载主类或用new创建类时,按如下顺序:  1、先执行类变量初始化
      2、再执行实例变量初始化
      3、然后执行构造函数
      

  4.   

    加载主类,执行mian函数
    在加载主类或用new创建类时,按如下顺序:  1、先执行类变量初始化(类变量只初始化一次)
      2、再执行实例变量初始化
      3、然后执行构造函数
      

  5.   

    补充下楼上的
    在类初始化时:
    1.static变量(全局只初始化一次)
    2.类变量
    3.再执行实例变量初始化
    4.然后执行构造函数
      

  6.   

    刚才查了下..类变量指的就是static....Sorry!
      

  7.   

    Matthiola(Matthiola) 说的很好