类的初始化过程及静态成员之间的执行顺序

    xiaoxiao2021-03-25  75

    一、类的初始化过程

    public class Test01 { static { System.out.println("静态代码块"); } public static void method(){ System.out.println("静态方法。。"); } { System.out.println("代码块。。"); } public Test01(){ System.out.println("构造器。。。"); } public static void main(String[] args) { new Test01(); System.out.println("==============="); new Test01(); } }

    运行结果:

    静态代码块 代码块。。 构造器。。。 ---------- 代码块。。 构造器。。。

    二、静态成员之间的执行顺序 1、静态代码块和静态成员变量优先于静态方法执行:

    代码1:

    public class Test01 { static { i=2; System.out.println("静态代码块"); } public static void method(){ System.out.println("静态方法。。"); System.out.println(i); } static int i=4; public static void main(String[] args) { Test01.method(); } }

    运行结果:

    静态代码块 静态方法。。 4

    2、静态成员变量和静态代码块是看它们在代码中的顺序,谁在前先执行 代码2:

    public class Test01 { static int i=4; static { i=2; System.out.println("静态代码块"); } public static void method(){ System.out.println("静态方法。。"); System.out.println(i); } public static void main(String[] args) { Test01.method(); } }

    运行结果:

    静态代码块 静态方法。。 2

    通过代码1和代码2结合比较可看出:谁在前先执行

    转载请注明原文地址: https://ju.6miu.com/read-12642.html

    最新回复(0)