1. 程式人生 > >Java類的載入過程以及單例模式的簡單解析

Java類的載入過程以及單例模式的簡單解析

類的載入,首先會載入靜態的東西:靜態程式碼塊,靜態屬性和靜態方法,這些是全域性的,但是靜態的方法會初始化,但是不呼叫的話是不會執行的。靜態變數,比如:
private static int temp=1;  
    類載入的時候,定義的是str = 0,只有初始化完成之後,才會給str複製1,而很多類似的靜態是按照程式順序進行載入的。初始化是JVM類載入的最後一步,靜態的其實就是相當於C語言的全域性變數,Java稱之為類變數。靜態變數是全域性存在的,有點人直接new一個物件來引用靜態變數,以為這樣可以防止記憶體消耗的問題,其實是一樣的,類引用和例項引用,只不過是一個親自引用,一個是代言人去引用,結果都是把靜態方法拉出放在程式裡面。那麼載入完靜態的,那麼初步的類載入就完成了,這特麼說的也太簡單了吧,其實大家可以去看看牛人說的具體機制,我水平有限,說錯了就耽誤大家了。接下來是不是該詢問:非靜態的方法,變數,以及程式碼塊呢?這些,都是例項化的引用,如果你不new的話,程式碼塊也是不會執行的,new 的時候,程式碼塊是最先執行的,其次才是父類的構造方法,再次才是自身的構造方法,解除安裝銷燬就剛好想法,兒子先掛,老子最後掛,因為將還是老的辣!