java基礎知識回顧 單例模式的三種實現

2021-07-14 15:20:47 字數 910 閱讀 1489

單例模式:單例模式的意思就是只有乙個

例項。單例模式確保某乙個類只有乙個例項,而且自行

例項化並向整個系統提供這個例項。這個類稱為單例類。

單例模式有三種:懶漢式單例,餓漢式單例,載入內部類單例。

public

class

singleton

//此類不能被例項化

public

static

synchronized singleton getinstance

() return singleton;

}}

優點:第一次呼叫才初始化,避免記憶體浪費。

缺點:必須加鎖synchronized 才能保證單例,(如果兩個執行緒同時呼叫getinstance方法,會chuxia)但加鎖會影響效率。

public

class

singleton

//此類不能被例項化

public

static singleton getinstance

()}

優點:沒有加鎖,執行效率會提高。

缺點:類載入時就初始化,浪費記憶體。

public

class

singleton

//構造方法是私有的,從而避免外界利用構造方法直接建立任意多例項。

public

static singleton getinstance

() private

static

class

holder

}

內部類只有在外部類被呼叫才載入,產生singleton例項;又不用加鎖。此模式有上述兩個模式的優點,遮蔽了它們的缺點,是最好的單例模式。

java基礎知識回顧(2)

一 switch後的小括號裡只能使用6種資料型別 byte short int char 列舉 字串。二 基本型別的值直接存在棧記憶體中,而陣列等引用型別的值存在堆記憶體中,棧記憶體只放陣列的位址。三 方法過載必須滿足三種情況 1 方法的名稱必須相同。2 方法的引數必須不同,這裡的不同分三種情況 a...

java基礎知識回顧(4)

一 基本資料型別 包裝類與string類之間的轉換 1 基本資料型別 包裝類 string類 呼叫string類的過載的valueof x 方法 int i1 10 integer i2 i1 轉為包裝類 stirng str1 string.valueof i1 轉為字串 2 string類 基本...

Java基礎知識回顧 6

1 遍歷 jar zip 檔案中的資源 file jar newfile myfile.jar zipinputstream zis new zipinputstream newfileinputstream jar try finally 2 遍歷web應用中的資源。setsubresources...