java中静态代码块,构造代码块,构造方法,main方法的执行顺序

时间:2022-04-06 19:33:41


/**
 * 首先执行静态代码块
         接着执行构造代码块
         最后指向构造方法
        
        静态代码块:只执行一次
        构造代码块:每次调用构造方法都执行
       
 * @author 
 *   静态代码块早于main方法执行
 */
class HelloA {

    public HelloA() {
        System.out.println("HelloA");
    }
   
    { System.out.println("I'm A class"); }
   
    static { System.out.println("static A"); }

}

public class Test1 extends HelloA {
    public Test1() {
        System.out.println("Test1");
    }
   
    { System.out.println("I'm B class"); }
   
   
   
    public static void main(String[] args) {
     //局部代码块
     {
     int x = 10;
      System.out.println(x);
     }
     
        new Test1();
        new Test1();
       }
   
    static { System.out.println("static B"); }
  
}




执行结果:

static A
static B
10
I'm A class
HelloA
I'm B class
Test1
I'm A class
HelloA
I'm B class
Test1