java-关于静态代码块和构造方法的执行顺序的探讨

下面以一个小demo为例进行探讨

 

 

 

 

 

 运行结果:

class A static
class B static
I'm A class
class A
I'm B class
class B

由此可见:执行顺序是:静态初始化块 -> 初始化块 -> 构造方法

 

=========================================================

package com.algorithm;

public class Animal {
    private int count;

    public int getCount() {
        return count;
    }
}

  

package com.algorithm;

public class Panada {
    public static void main(String[] args) {
        Animal animal = new Animal();
        System.out.println("========"+animal.getCount());
    }
}

  

运行结果:0

package com.algorithm;

public class Animal {
    private static int count;

    public static int getCount() {
        return count;
    }
}

  

package com.algorithm;

public class Panada {
    public static void main(String[] args) {
        System.out.println("========"+Animal.getCount());
    }
}

  

运行结果:0

package com.algorithm;

public class Animal {
    private static int count;

    static {
        count=2;
    }

    public static int getCount() {
        return count;
    }
}

  

package com.algorithm;

public class Panada {
    public static void main(String[] args) {
        System.out.println("========"+Animal.getCount());
    }
}

  

运行结果:2

 

posted on 2020-01-21 10:59  ~码铃薯~  阅读(149)  评论(0编辑  收藏  举报

导航