大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java教程
Java標識符與關鍵字
Java變量
Java數據類型
Java運算符
Java控制語句
Java方法
Java面向對象
Java對象的創建和使用
Java封裝
Java中static和this
Java繼承
Java方法覆蓋和多態
Java super
Java基礎練習題

Java static靜態代碼塊

靜態代碼塊的語法格式是這樣的:

類{
//靜態代碼塊
static{
java語句;
}
}

靜態代碼塊在類加載時執行,并且只執行一次。開發中使用不多,但離了它有的時候還真是沒法寫代碼。靜態代碼塊實際上是java語言為程序員準備的一個特殊的時刻,這個時刻就是類加載時刻,如果你想在類加載的時候執行一段代碼,那么這段代碼就有的放矢了。例如我們要在類加載的時候解析某個文件,并且要求該文件只解析一次,那么此時就可以把解析該文件的代碼寫到靜態代碼塊當中了。我們來測試一下靜態代碼塊:

public class StaticTest01 {
	//靜態代碼塊
	static{
		System.out.println(2);
	}
	//靜態代碼塊
	static{
		System.out.println(1);
	}
	//main方法
	public static void main(String[] args) {
		System.out.println("main execute!");
	}
	//靜態代碼塊
	static{
		System.out.println(0);
	}
}

運行結果如下圖所示:

Java開發

圖11-22:靜態代碼塊運行結果

通過以上的測試可以得知一個類當中可以編寫多個靜態代碼塊(盡管大部分情況下只編寫一個),并且靜態代碼塊遵循自上而下的順序依次執行,所以有的時候放在類體當中的代碼是有執行順序的(大部分情況下類體當中的代碼沒有順序要求,方法體當中的代碼是有順序要求的,方法體當中的代碼必須遵守自上而下的順序依次逐行執行),另外靜態代碼塊當中的代碼在main方法執行之前執行,這是因為靜態代碼塊在類加載時執行,并且只執行一次。再來看一下以下代碼:

public class StaticTest02 {
	int i = 100;
	static{
		System.out.println(i);
	}
}

編譯結果如下圖所示:

圖11-23:靜態代碼塊中訪問實例變量編譯報錯

為什么編譯報錯呢?那是因為i變量是實例變量,實例變量必須先創建對象才能訪問,靜態代碼塊在類加載時執行,這個時候對象還沒有創建呢,所以i變量在這里是不能這樣訪問的。可以考慮在i變量前添加static,這樣i變量就變成靜態變量了,靜態變量訪問時不需要創建對象,直接通過“類”即可訪問,例如以下代碼:

public class StaticTest02 {
	static int i = 100;
	static{
		System.out.println("靜態變量i = " + i);
	}
	public static void main(String[] args) {
	}
}

運行結果如下圖所示:

圖11-24:靜態代碼塊中訪問靜態變量

代碼修改為這樣呢?

public class StaticTest02 {
	static{
		System.out.println("靜態變量i = " + i);
	}
	static int i = 100;
}

編譯報錯了,請看下圖:

圖11-25:編譯報錯信息

通過測試,可以看到有的時候類體當中的代碼也是有順序要求的(類體當中定義兩個獨立的方法,這兩個方法是沒有先后順序要求的),靜態代碼塊在類加載時執行,靜態變量在類加載時初始化,它們在同一時間發生,所以必然會有順序要求,如果在靜態代碼塊中要訪問i變量,那么i變量必須放到靜態代碼塊之前。

全部教程
主站蜘蛛池模板: 五月天色中色 | 日韩一区二区视频 | 华人欧美国产在线精品 | 性欧美xo视频在线观看 | 久久精品国产99国产精品免费看 | 国产成人+亚洲欧洲 | 天天操天天干天搞天天射 | 波多野结衣中文字幕一区二区三区 | 国产香蕉尹人综合在线 | 免费不卡 | 四虎影视免费观看 | 亚洲精品tv久久久久久久久 | 日本一区二区三区四区 | 精品煌色视频网站在线观看 | 91国内视频在线观看 | 亚洲成a人一区二区三区 | 四虎影院在线免费观看 | 图片区亚洲 | 欧美xxxxbbbb在线播放 | 免费播放国产一级 | 免费激情网址 | 高清中文字幕免费观在线 | 日本一区精品久久久久影院 | 性做爰片视频毛片 | 色a4yy| 成人欧美一区二区三区视频xxx | 亚洲欧洲日韩国产aa色大片 | 情趣视频网站在线观看 | 久久精品免视国产 | 欧美成人香蕉在线观看 | 久久精品国产主播一区二区 | 精品视频在线观看一区二区三区 | 思思久久99热这里只有精品66 | 国产玖玖视频 | 天天舔天天射天天操 | 点击进入不卡毛片免费观看 | 亚州中文字幕 | 国模私拍视频在线观看 | 九九香蕉网 | 四虎免费入口 | 久久亚洲综合网 |