首頁(yè)| 新聞| 娛樂(lè)| 游戲| 科普| 文學(xué)| 編程| 系統(tǒng)| 數(shù)據(jù)庫(kù)| 建站| 學(xué)院| 產(chǎn)品| 網(wǎng)管| 維修| 辦公| 熱點(diǎn)
例1:
類加載順序: * 1.加載類的靜態(tài)屬性(非靜態(tài)不管) * 這里加載的是:public static int k = 0; * 然后加載:public static StaticTest t1 = new StaticTest(“t1”); * 因?yàn)榇颂庍M(jìn)行了類的實(shí)例化所以 * 1.1加載類的非靜態(tài)屬性 * 這里是:public int j = print(“j”); * 運(yùn)行完這個(gè)方法接著 * 1.2順序加載類中的非static代碼塊(static暫時(shí)不加載) * 這里是:print(“構(gòu)造快”);和print(“靜態(tài)塊”); * 運(yùn)行完接著 * 1.3加載類的構(gòu)造方法 * 這里是:public StaticTest(String str) * 運(yùn)行完(一個(gè)靜態(tài)屬性的實(shí)例就完成了) * 2.繼續(xù)加載類的靜態(tài)屬性 * 這里加載的是:public static StaticTest t2 = new StaticTest(“t2”); * 2.1重復(fù)(1.1-1.3) * 3.繼續(xù)加載類的靜態(tài)屬性 * 這里加載的是:public static int i = print(“i”); * 運(yùn)行完接著 * 4.繼續(xù)加載類的靜態(tài)屬性 * 這里加載的是:public static int n = 99; * 不管你n原來(lái)是多少現(xiàn)在為99 * 接著 * 5.(如果有static代碼塊,在這里先加載,這個(gè)里面沒(méi)有所以加載主函數(shù))加載主函數(shù) * 這里加載的是:StaticTest t = new StaticTest(“init”); * 因?yàn)榇颂庍M(jìn)行了類的實(shí)例化所以 * 5.1 * 重復(fù)1.1-1.3 * 5.2 * 因?yàn)閜ublic static int print(String str)這個(gè)方法返回++n * 所以n從99開(kāi)始累 * 運(yùn)行完OK了
例2:
一般順序:靜態(tài)塊(靜態(tài)變量)–>成員變量(匿名代碼塊)–>構(gòu)造方法–>靜態(tài)方法(調(diào)用的時(shí)候才加載)
例3:
執(zhí)行main方法,程序輸出順序?yàn)椋?1 3 4 5 a b e 2 6 7 c f d 2 6 7 c f d
如果有繼承關(guān)系:
如果類還沒(méi)有被加載: 1、先執(zhí)行父類的靜態(tài)代碼塊和靜態(tài)變量初始化,并且靜態(tài)代碼塊和靜態(tài)變量的執(zhí)行順序只跟代碼中出現(xiàn)的順序有關(guān)。 2、執(zhí)行子類的靜態(tài)代碼塊和靜態(tài)變量初始化。 3、執(zhí)行父類的實(shí)例變量初始化 4、執(zhí)行父類的構(gòu)造函數(shù) 5、執(zhí)行子類的實(shí)例變量初始化 6、執(zhí)行子類的構(gòu)造函數(shù)
如果類已經(jīng)被加載: 則靜態(tài)代碼塊和靜態(tài)變量就不用重復(fù)執(zhí)行,再創(chuàng)建類對(duì)象時(shí),只執(zhí)行與實(shí)例相關(guān)的變量初始化和構(gòu)造方法。
索泰發(fā)布一款GTX 1070 Mini迷
AMD新旗艦顯卡輕松干翻NVIDIA
索泰發(fā)布一款GTX 1070 Mini迷你版本:小機(jī)
芭蕾舞蹈表演,真實(shí)美到極致
下午茶時(shí)間,悠然自得的休憩
充斥這繁華奢靡氣息的城市迪拜風(fēng)景圖片
從山間到田野再到大海美麗的自然風(fēng)景圖片
肉食主義者的最愛(ài)美食烤肉圖片
夏日甜心草莓美食圖片
人逢知己千杯少,喝酒搞笑圖集
搞笑試卷,學(xué)生惡搞答題
新聞熱點(diǎn)
疑難解答
圖片精選
Java線程池執(zhí)行原理分析
java class文件準(zhǔn)確的反編譯思路
Java 容器相關(guān)知識(shí)全面總結(jié)
網(wǎng)友關(guān)注