//餓漢式單例
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...