国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

深入淺析Java中普通代碼塊、構造代碼塊與靜態代碼塊

2019-11-26 14:00:55
字體:
來源:轉載
供稿:網友

//執行順序:(優先級從高到低。)

靜態代碼塊>mian方法>構造代碼塊>構造方法。

其中靜態代碼塊只執行一次。構造代碼塊在每次創建對象是都會執行。

1.普通代碼塊

public static void main(String[] args) {/*普通代碼塊:*直接定義在在方法或語句中出現”{普通代碼的執行語句}“的就稱為普通代碼塊。*普通代碼塊執行順序由他們在代碼中出現的次序決定--“先出現先執行”* */{  System.out.println("這里是普通代碼塊A");}//new A();{  System.out.println("這里是普通代碼塊B");}}

執行結果:這里是普通代碼塊A
     這里是普通代碼塊B

2.靜態代碼塊與構造代碼塊

在java中使用static關鍵字聲明的代碼塊。

常用于對類的初始化,每個靜態代碼塊只會執行一次(類在內存中加載時執行,類在內存中加載后類已經存在)由于JVM在加載類時會執行靜態代碼塊,所以靜態代碼塊先于主方法執行。如果類中包含多個靜態代碼塊,那么將按照"先定義的代碼先執行,后定義的代碼后執行。

ps:

1 靜態代碼塊不能存在于任何方法體內。

2 靜態代碼塊不能直接訪問靜態實例變量和實例方法,需要通過類的實例對象來訪問。

構造塊:直接在類中定義且沒有加static關鍵字的代碼塊稱為{}構造代碼塊。

構造代碼塊在創建對象時被調用,每次創建對象都會被調用,并且構造代碼塊的執行次序優先于類構造函數。

public class structure {{System.out.println("這里是普通代碼塊");//所有類中有一個默認的構造函數,這里的代碼塊為構造代碼塊,在類中的對象被創建時執行}public static void main(String[] args) {/*普通代碼塊:*直接定義在在方法或語句中出現”{普通代碼的執行語句}“的就稱為普通代碼塊。*普通代碼塊執行順序由他們在代碼中出現的次序決定--“先出現先執行”* */{System.out.println("這里是普通代碼塊A");}new structure();//第二次類加載時靜態代碼塊不執行//new A();{System.out.println("這里是普通代碼塊B");}}static{System.out.println("這里是靜態代碼塊");}}

執行結果:

這里是靜態代碼塊//優先于主函數
這里是普通代碼塊A
這里是普通代碼塊//類中的對象被創建時執行,每創建一次執行一次,在加一句new structure(); 執行結果為:

這里是普通代碼塊B

3.概要總結

public class structure {{System.out.println("這里是普通代碼塊");}public static void main(String[] args) {{System.out.println("這里是普通代碼塊A");}//new structure();//new structure();new A();{System.out.println("這里是普通代碼塊B");}}static{System.out.println("這里是靜態代碼塊");}}class A{static{System.out.println("這里是A中的普靜態代碼塊1");}{System.out.println("這里是A中的普通代碼塊1");}{System.out.println("這里是A中的普通代碼塊2");}}

執行結果:

這里是靜態代碼塊
這里是普通代碼塊A
這里是A中的普靜態代碼塊1
這里是A中的普通代碼塊1
這里是A中的普通代碼塊2
這里是普通代碼塊B

優先級總結:靜態代碼塊>Main()>構造代碼塊

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南汇区| 锦屏县| 江川县| 久治县| 观塘区| 成都市| 临沧市| 杨浦区| 施秉县| 双城市| 宜良县| 兖州市| 灵丘县| 商丘市| 安岳县| 漾濞| 楚雄市| 绵竹市| 县级市| 洛阳市| 太仓市| 密云县| 大宁县| 那坡县| 肇源县| 正安县| 临城县| 博白县| 竹北市| 辉县市| 咸宁市| 甘德县| 石河子市| 莱西市| 济南市| 博野县| 甘孜县| 东宁县| 缙云县| 古蔺县| 泌阳县|