黑马程序员技术交流社区

标题: 静态代码块,构造代码块,构造函数的执行顺序 [打印本页]

作者: xiaoxinxin003    时间: 2015-7-4 22:29
标题: 静态代码块,构造代码块,构造函数的执行顺序
现在终于理清这三者之间的关系了,总结如下:
package basicTest;

/*
* 这个例子很好的演示了静态代码块   构造代码块  构造函数在程序运行时的加载次序
*
* 静态代码块在初始化对象是就执行而且只执行一次,
*         如果静态代码块与主函数在一个大括号内,则先加载静态代码块
*
* 此外,我们也可以看到,构造代码块的执行优先于构造方法
* */
class Code{

    //静态代码块
        static{
        System.out.println("Code的静态代码块");
        }

   //构造方法
        public Code(){
        System.out.println("Code的构造方法");
        }
   //构造代码块
        {
            System.out.println("Code的构造块");
    }
    }


public class CodeBlock03{
     {
      System.out.println("CodeBlock03的构造块");   
     }

     static{
        System.out.println("CodeBlock03的静态代码块");
        }

        public CodeBlock03(){
             System.out.println("CodeBlock03的构造方法");
            }

      public static void main(String[] args){
            System.out.println("CodeBlock03的主方法");
            new Code();
            /*new Code();
            new CodeBlock03();
            new CodeBlock03();*/
          }
    }



作者: 贾森    时间: 2015-7-4 22:55
很不错~
作者: Frank2008    时间: 2015-7-5 00:16
总结的好,赞!
作者: 赵龙    时间: 2015-7-5 00:44
不错   刚刚看了一下   顶一下
作者: 杨基米德    时间: 2015-7-5 06:48
挺好啊~
作者: 小糊涂仙    时间: 2015-7-5 11:24
还不错
作者: wengjialiang    时间: 2015-7-5 15:54
静态代码块在初始化对象是就执行而且只执行一次……楼主你这句理解错了
应该是静态代码块随着类的加载而运行,因为程序运行时class文件只加载一次,所以静态代码块只运行一次
作者: 牵着蜗牛去逛街    时间: 2015-7-5 16:05
总结的不错,受教了。。
作者: icichacici    时间: 2015-7-5 16:40
受教,受教
作者: xiaoxinxin003    时间: 2015-7-5 17:34
wengjialiang 发表于 2015-7-5 15:54
静态代码块在初始化对象是就执行而且只执行一次……楼主你这句理解错了
应该是静态代码块随着类的加载而运 ...

我的意思是初始化对象,存在多次初始化的情况,比如我的Code()以及CodeBlock03就是创建了两个对象并初始化




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