BruceOuyang / issuelist

用于记录日常碰到的各种问题和经验总结 (请看Issues)
4 stars 2 forks source link

JAVA 代码块最佳实践 #83

Open BruceOuyang opened 2 years ago

BruceOuyang commented 2 years ago
/**
 * @ClassName: CodeTest
 * @Description: 代码块最佳实践
 * @Author: Bruce
 * @Date: 2022/1/18 16:49
 * @Version: V1
 **/
public class CodeTest {

    static {
        System.out.println(System.currentTimeMillis() + "   第1段  顶部静态代码块");
    }

    {
        System.out.println(System.currentTimeMillis() + "   第2段  顶部非静态代码块");
    }

    public CodeTest() {
        System.out.println(System.currentTimeMillis() + "   第3段  无参构造");
    }

    public CodeTest(String s) {
        System.out.println(System.currentTimeMillis() + "   第4段  含参构造");
    }

    public static void main(String[] args) {
        System.out.println("------------------");
        new CodeTest();
        System.out.println("------------------");
        new CodeTest("hello~");
        System.out.println("------------------");
    }

    static {
        System.out.println(System.currentTimeMillis() + "   第5段  底部静态代码块");
    }

    {
        System.out.println(System.currentTimeMillis() + "   第6段  底部非静态代码块");
    }

    {s();}

    public String s() {
        System.out.println(System.currentTimeMillis() + "   第7段  底部方法调用");
        return "hello~";
    }

}

输出结果

C:\installed-envs\java\jdk1.8.0_192\bin\java.exe ....

1642497659968   第1段  顶部静态代码块
1642497659968   第5段  底部静态代码块
------------------
1642497659968   第2段  顶部非静态代码块
1642497659968   第6段  底部非静态代码块
1642497659968   第7段  底部方法调用
1642497659968   第3段  无参构造
------------------
1642497659968   第2段  顶部非静态代码块
1642497659968   第6段  底部非静态代码块
1642497659968   第7段  底部方法调用
1642497659968   第4段  含参构造
------------------

Process finished with exit code 0