玩轉單例模式的各種寫法和破解

2021-10-24 02:55:36 字數 2773 閱讀 6363

//餓漢式單例

public

class

hungry

private

final

static hungry hungry =

newhungry()

;public

static hungry getinstance()

}

//懶漢式

public

class

lazyman

private

static lazyman lazyman;

public

static lazyman getinstance()

return lazyman;

}}

//dcl懶漢式

public

class

lazyman

private

volatile

static lazyman lazyman;

//雙重檢測模式的 懶漢式單例 dcl懶漢式

public

static lazyman getinstance()

}}return lazyman;

}//多執行緒併發

public

static

void

main

(string[

] args)).

start()

;}}}

//dcl懶漢式

public

class

lazyman

private

volatile

static lazyman lazyman;

//雙重檢測模式的 懶漢式單例 dcl懶漢式

public

static lazyman getinstance()

}}return lazyman;

}//反射破解

public

static

void

main

(string[

] args)

throws exception

}

//dcl懶漢式

public

class

lazyman

} system.out.

println

(thread.

currentthread()

.getname()

+"啟動");

}private

volatile

static lazyman lazyman;

//雙重檢測模式的 懶漢式單例 dcl懶漢式

public

static lazyman getinstance()

}}return lazyman;

}//反射破解

public

static

void

main

(string[

] args)

throws exception

}

//dcl懶漢式

public

class

lazyman

else

} system.out.

println

(thread.

currentthread()

.getname()

+"啟動");

}private

volatile

static lazyman lazyman;

//雙重檢測模式的 懶漢式單例 dcl懶漢式

public

static lazyman getinstance()

}}return lazyman;

}//反射破解

public

static

void

main

(string[

] args)

throws exception

}

//dcl懶漢式

public

class

lazyman

else

} system.out.

println

(thread.

currentthread()

.getname()

+"啟動");

}private

volatile

static lazyman lazyman;

//雙重檢測模式的 懶漢式單例 dcl懶漢式

public

static lazyman getinstance()

}}return lazyman;

}//反射破解

public

static

void

main

(string[

] args)

throws exception

}

//列舉本身也是乙個類,是乙個class類

public

enum enumsingle

}class

test

}

單例模式的各種寫法

1.餓漢式單例模式 classname hungerysingleton description 餓漢式單例模式 author ymj date 2020 07 10 21 55 version v1.0 public class hungerysingleton public static hun...

Java單例模式的各種寫法和最優寫法推薦

話不多說,直接上 1 只適合單執行緒環境,懶漢模式 classsingletonpublic staticsingleton getinstance returninstance 評價 由於只生成乙個例項,為防止別人建立該類例項,構造方法為私有屬性,只有在例項物件為空時才去建立 為避免重複建立 餓漢...

Java單例模式的各種寫法和最優寫法推薦

話不多說,直接上 1.懶漢模式 只適合單執行緒環境,在需要的時候才去建立物件例項 時間換空間 優點 在不要物件例項的時候,節省了記憶體空間。缺點 在使用的時候會先判斷是否為空,為空的話,才去建立物件。所以獲取物件例項相對較慢。class singleton public static singlet...