A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

现在终于理清这三者之间的关系了,总结如下:
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();*/
          }
    }


9 个回复

倒序浏览
很不错~
回复 使用道具 举报
总结的好,赞!
回复 使用道具 举报
不错   刚刚看了一下   顶一下
回复 使用道具 举报
杨基米德 来自手机 中级黑马 2015-7-5 06:48:39
报纸
挺好啊~
回复 使用道具 举报
还不错
回复 使用道具 举报
静态代码块在初始化对象是就执行而且只执行一次……楼主你这句理解错了
应该是静态代码块随着类的加载而运行,因为程序运行时class文件只加载一次,所以静态代码块只运行一次
回复 使用道具 举报
总结的不错,受教了。。
回复 使用道具 举报
受教,受教
回复 使用道具 举报
wengjialiang 发表于 2015-7-5 15:54
静态代码块在初始化对象是就执行而且只执行一次……楼主你这句理解错了
应该是静态代码块随着类的加载而运 ...

我的意思是初始化对象,存在多次初始化的情况,比如我的Code()以及CodeBlock03就是创建了两个对象并初始化
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马