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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 请备注 中级黑马   /  2014-4-4 00:02  /  1204 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class StaticCode
{       
        StaticCode()
        {
            System.out.println("c");
        }

        static        
        {
            System.out.println("a");
        }

}


public class StaticDemo
{
        static
        {
            System.out.println("b");
        }

        public static void main(String[] args)
        {
            new StaticCode();
            new StaticCode();
            System.out.println("over");
        }
}       

执行结果 b  
             a
             c   
             c   
             over      

评分

参与人数 1黑马币 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
你程序里有静态代码块:
  1. static
  2. {
  3.         静态代码块中的执行语句。
  4. }

  5. <font color="#ff00ff">特点:随着类的加载而执行,只执行一次,并优先于主函数(优先于对象)。</font>
  6. 用于给类进行初始化的。
复制代码
所以先执行StaticDemo类的static。然后执行上边的static,然后才会到主函数
回复 使用道具 举报
不一样 我想的结果是
b
a
c
a
c
over
回复 使用道具 举报
muma 发表于 2014-4-4 08:34
不一样 我想的结果是
b
a

静态代码块是给类初始化的,所以它只会执行一次。
  1. static         
  2.         {
  3.             System.out.println("a");
  4.         }
复制代码

虽说new了两个对象,但它只执行了一次。


回复 使用道具 举报
奥 对我想起来了 对 是这样的 谢谢
回复 使用道具 举报
public class StaticDemo
        {
                static
                {
                    System.out.println("b"); //jvm先找main函数,然后加载它所在的类,
                                            //   所以当加载StaticDemo时就加载了静态
                                            // 代码块,所以首先会打印出b
                }                                    

                public static void main(String[] args)
                {
                    new StaticCode();  //在类中静态代码块的优先级高于构造函数,
                                      //所以先打印a,然后才是构造函数中c
                    new StaticCode(); //在类中静态代码块只加载一次以后就不再加载了,
                                      //所以这里只加载构造函数打印c
                    System.out.println("over");//最后打印over
                }
        }        

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马