Java:普通コードブロック、コードブロック、静的コードブロックの構築

6177 ワード

回転:http://blog.csdn.net/jungle_hello/articale/details/51169517実行順序:(優先度が高いから低いまで)静的コードブロック>main方法>コードブロックの構造方法。静的コードブロックは一回だけ実行されます。コードブロックを作成すると、オブジェクトを作成するたびに実行されます。
class StaticBlock
{
    int num = 9;
    StaticBlock()
    {
        System.out.print("d ");
    }
    //     
    static
    {
        System.out.print("b ");
    }
    //     
    {
        System.out.print("c "+num+" ");
    }
    StaticBlock(int x)
    //     
    {
        System.out.print("a ");
    }
}

class StaticBlockDemo
{
    public static void main(String[] args)
    {
        new StaticBlock(4);
    }
}
//b c 9 a
1普通コードブロック
//     :          {}        。                             --“      ”
public class CodeBlock01{
      public static void main(String[] args){

            {
              int x=3;
              System.out.println("1,         x="+x);    
            }

            int x=1;
            System.out.println("       x="+x);

            {
               int y=7;
               System.out.println("2,         y="+y);    
            }
          }
    }

    /*     : 1,         x=3        x=1 2,         y=7 */
2コードブロックを作成する
//   :           static         {}     。              ,           ,                    。

public class CodeBlock02{
    {
      System.out.println("     ");    
    }

    public CodeBlock02(){
        System.out.println("    ");
        }

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

    }
}    

/* *     :                                                    */
3静的コードブロック
//     : java   static         。         ,        。             。  JVM             ,              。
//             ,     "         ,         "。
//  :1                 。2                       ,             。


class Code{
    {
      System.out.println("Code    ");
    }

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

    public 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();
          }
    }
/* CodeBlock03       CodeBlock03     Code       Code     Code      Code     Code      CodeBlock03     CodeBlock03      CodeBlock03     CodeBlock03      */