1. 程式人生 > >JVM中 一個類只會被載入一次

JVM中 一個類只會被載入一次

     載入是相對於程序而言的,

     啟動一個main方法,也就是啟動了一個程序,在一個程序中,一個類只會被載入一次

public class TestThread {

    /**
     * 啟動一個程序
     *      在這個程序中啟動多個執行緒
     *      在每個執行緒中例項化一個類
     * @param args
     */
    public static void main(String[] args) {
        int i = 0;
        while(i++ < 5){
            new Thread(() -> new P()).start();
        }
    }
}

class P{
    
    public static int a = 1;
    
    static{
        System.out.println("static block ");
    }
    
    public P(){
        System.out.println("P.P()");
    }
    
}

檢視輸出結果, 類P只有在第一次被呼叫的時候才進行初始化, 在之後的例項時都不在進行初始化

static block 
P.P()
P.P()
P.P()
P.P()
P.P()