先說(shuō)執(zhí)行順序:我們?cè)趎ew一個(gè)對(duì)象時(shí),如果類還沒(méi)加載,就需要先將類加載到內(nèi)存,此時(shí)就會(huì)執(zhí)行靜態(tài)代碼塊,在創(chuàng)建對(duì)象時(shí),是先執(zhí)行代碼塊,然后執(zhí)行構(gòu)造器。所以靜態(tài)代碼塊、代碼塊、構(gòu)造器的執(zhí)行順序是:靜態(tài)代碼塊→代碼塊→構(gòu)造器。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到浦口網(wǎng)站設(shè)計(jì)與浦口網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋浦口地區(qū)。
再說(shuō)作用:靜態(tài)代碼塊是用于初始化類的(在加載類時(shí)執(zhí)行,只執(zhí)行一次),代碼塊是用于初始化對(duì)象的(在創(chuàng)建對(duì)象時(shí)執(zhí)行,每次創(chuàng)建對(duì)象時(shí)都執(zhí)行),構(gòu)造器是用于創(chuàng)建對(duì)象的。
public static void main(String[] args)throws IOException {
File file =new File("D:\\備份\\"); // 根據(jù)路徑創(chuàng)建一個(gè)文件對(duì)象
getFileIsJava(file,"demo2.txt"); // 調(diào)用getFileIsJava方法
}
public static void getFileIsJava(File file, String pathName)throws IOException {
File[] files=file.listFiles(); // 列出這個(gè)文件對(duì)應(yīng)路徑地下的所有文件和路徑。即D:\\備份\\ 底下所有文件
BufferedWriter bw=new BufferedWriter(new FileWriter(pathName+"",true)); // 創(chuàng)建一個(gè)輸出文件對(duì)象,輸出的文件問(wèn)pathName
for(int i=0;ifiles.length;i++){ // 對(duì)文件和路徑進(jìn)行迭代
String name=files[i].getName(); // 獲得每次迭代的文件名或者路徑名
if(files[i].isDirectory()){ //如果這個(gè)路徑
getFileIsJava(files[i], pathName);//再次嵌套調(diào)用getFileIsJava方法。直到獲得文件為止。
}
else if(name.endsWith(".xml")){//如果這個(gè)文件是xml文件
String path=files[i].getAbsolutePath();//獲得這個(gè)文件的絕對(duì)路徑
bw.write(path);//把絕對(duì)路徑寫入輸出流(即寫入 pathName對(duì)應(yīng)的文件)
bw.newLine();//換行
bw.flush();//刷新輸出流。是緩存立即寫入文件
System.out.println(path);//打印出路徑
}
}
bw.close();//關(guān)閉輸出流
}
Java靜態(tài)代碼塊的作用:Java靜態(tài)代碼塊中的代碼會(huì)在類加載JVM時(shí)運(yùn)行,且只被執(zhí)行一次,也就是說(shuō)這些代碼不需要實(shí)例化類就能夠被調(diào)用。一般情況下,如果有些代碼必須在項(xiàng)目啟動(dòng)的時(shí)候就執(zhí)行的時(shí)候,就需要使用靜態(tài)代碼塊。
Java靜態(tài)代碼塊的用法:一個(gè)類可以使用不包含在任何方法體中的靜態(tài)代碼塊,當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來(lái)執(zhí)行類屬性的初始化。例如:
static
{
int
a=0;
}
java中有四種代碼塊
1.普通代碼塊:直接在{}中出現(xiàn)的。
2.構(gòu)造代碼塊:在構(gòu)造函數(shù)的{}中出現(xiàn)的。
3.靜態(tài)代碼塊:static{}中出現(xiàn)的。
4.同步代碼塊:多線程中出現(xiàn)。