首页 > 代码库 > java运行顺序-JVM之九

java运行顺序-JVM之九

简化顺序版本是:

  1. 父类的静态成员赋值和静态块,代码排版先后顺序执行,只运行一次
  2. 子类的静态成员赋值和静态块,代码排版先后顺序执行,只运行一次
  3. 父类代码块
  4. 父类构造方法
  5. 子类初始化块
  6. 子类构造方法

再次构造子类,将重复3/4/5/6步骤

 

<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #931a68 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco } span.s1 { color: #000000 } span.s2 { color: #931a68 } span.s3 { color: #0326cc } span.s4 { color: #3933ff } span.s5 { color: #7e504f } span.s6 { text-decoration: underline; color: #7e504f }</style>

 

总之:见到静态必先行-》类中代码块-》构造。

 

 

public class Hello {

 

    static class A{

 

        static C c =new C();

 

        public A(){

 

            System.out.println("A‘s Constructor");

 

        }

 

        static {

 

            System.out.println("A‘s static ");

 

        }

 

 

 

    }

 

    static class B extends A{

 

 

 

        public B(){

 

            System.out.println("B‘s Constructor");

 

        }

 

        D d = new D();

 

        C c =new C();

 

        static {

 

            System.out.println("B‘s static ");

 

        }

 

 

 

    }

 

    static class C {

 

        public C(){

 

            System.out.println("C‘s Constructor");

 

 

 

        }

 

        static {

 

            System.out.println("C‘s static");

 

        }

 

    }

 

    static class D{

 

        public D(){

 

            System.out.println("D‘s Constructor");

 

        }

 

        static {

 

            System.out.println("D‘s static");

 

        }

 

    }

 

    public static void main(String args[]){

 

        System.out.println("start");

 

        B b = new B();

 

    }

 

}

 

结果:

<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }</style>

start

C‘s static

C‘s Constructor

A‘s static 

B‘s static 

A‘s Constructor

D‘s static

D‘s Constructor

C‘s Constructor

B‘s Constructor

 

第二例子:

http://blog.csdn.net/wenwen091100304/article/details/49488137

java运行顺序-JVM之九