java類中static代碼塊的執行次數

一、[b]java類中 static靜態代碼塊的執行次數[/b]
1、在類加載的init階段,類的類構造器中會收集所有的static塊和字段並執行,static塊只執行一次,由JVM保證其只執行一次。

2、[b]直接看示例[/b]

public class TestStatic{
public static String name = "";

static{
System.out.println("init ....");
name = "admin";
}

public static String getName(){
return name;
}

public static String getIdAndName(int id){
return id + "---" + name;
}

public static void main(String[] args) {
String name = TestStatic.getName();
String idAndName = TestStatic.getIdAndName(888);
System.out.println(name);
System.out.println(idAndName);
}

}

對執行結果分析:
在調用TestStatic類中任何一個方法時,jvm進行類加載,static語句塊是在類加載器加載該類的最後階段進行初始化的。並且只會被初始化一次。
若一次性調用多個方法,則只會執行一次static代碼塊。

說明:static語句塊,不是在實例化的時候被執行的。



三、[b]static代碼塊的使用[/b]
1、項目對某些數據進行初始化,可以在兩個地方處理。
第一、就是在項目啓動時,加載某個類,對數據進行數據化(如:初始化基礎數據或數據庫連接池)。
第二、就是在某個工具類中使用static靜態代碼塊,當第一次訪問工具類時,就會先進行初始化(只會執行一次),保存到靜態全局屬性中,當其他類再次訪問時,將直接使用初始化數據(如:連接redis數據庫,並初始化連接池)。

2、緩存數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章