不运行程序时,下面代码的输出是什么啊?class A {
  static int i=4;
  {i=5;}{int i=6;}static{i=7;}
  public static void main(String args[]) {
      new A();System.out.print("我可以接"+i+++"分!");
   }
}

解决方案 »

  1.   

    5执行顺序 static,static block, new A(),other...顺便说句,写完了顺便自动调整一下格式吧
      

  2.   

    输出:
      我可以接所有的分!呵呵就是初始顺序了,static(包括static block)->non-static block->constructor->...至于对不对,自己判断吧
      

  3.   

    我不明白楼主为什么经常弄些这种问题来研究呢?什么叫“不运行程序时,下面代码的输出是什么啊?”?实际运行它就是这个结果。我运行的也是5。想研究java的核心啊,还是。。一般出现什么结果就是什么结果,只能用实践证明。如果你这样得出什么bug,可以报告给sun,让他改,你也改变不了啊。
      

  4.   

    5
    建议楼主改成这样:
    class A {
      static int i=4;
      {i=500;}{int i=6;}static{i=7;}
      public static void main(String args[]) {
          new A();System.out.print("我可以接"+i+++"分!");
       }
    }
    哈哈!
      

  5.   

    这个世界上有这种人,道理不错,但是最后的结果“总是”错的,呵呵比如 kingfish(龙城) ,我可以接5分!//楼上的,!!!!!!
      

  6.   

    kingfish(龙城)的结果是错的吗?
    {int i=6;}这里的i只是一个局部变量,所以这个block根本是没用的
      

  7.   

    static int i = 4;
    --------------
        static {
            i = 7;
        }
    -----------------
            new A();
    ----------------
        {
            i = 5;
        }
    ------------------
        {
            int i = 6;
        }
    ------------------
            System.out.print("我可以接" + i++ +"分!");
      

  8.   

    主要研究如何散分 又不扣信誉~~这种问题应该比较白痴的,
    前面有一个问题自己搞错了,让大家以为我喜欢牛角尖但好像有情商的人不多。呵呵
    kingfish(龙城)、masse(当午) 和啤酒肚 有趣一些
      

  9.   

    4->7->5 //可以接5分!
     {
    int i = 6;  //是个局部变量
    }
      

  10.   

    和下面的代码是等效的class A {    static int i;    static {
            i = 4;
            i = 7;
        }    A(){
            i = 5;
            byte byte0 = 6;
        }    public static void main(String args[]){
            new A();
            System.out.print((new StringBuilder()).append("我可以接").append(i++).append("分!").toString());
        }
    }
      

  11.   

    真的是 我可以接5分!
    class A {
      static int i=4; // 1
      {i=5;} //3
      {int i=6;} //局部变量
      static{i=7;} //2
      public static void main(String args[]) {
          new A();System.out.print("我可以接"+i+++"分!"); //先打印后加1
       }
    }