Java牛角尖【003】:类初始化时的执行顺序

   在初始化一个类时,到底是先执行哪一部分,总体的执行顺序是什么样的呢,同样,当类被释放时,又是怎样一个顺序呢?先来看下面的代码好了。

 

  只要运行上面的代码,结果如下:

  其实大家已经清楚,在初始化时,执行的顺序是:

1.  父类的静态代码块

2. 子类的静态代码块

3. 父类的构造方法

4. 子类的构造方法

 

  释放资料时,执行的顺序是:

1. 子类的finalize方法

2. 父类的finalize方法

 

  只是这里一个意外是:竟然父类为抽象类时也同样会调用父类的构造方法,看来抽象类在虚拟机内部还是被实例化了。

 

  下一篇: Java牛角尖【004】:Final类可以有protected属性或方法吗?

posted @ 2009-05-29 22:00  moonsnow  阅读(134)  评论(0编辑  收藏  举报