1况增、懶漢式? 單線程方便准谚,但是多線程不安全
public class Test{
public?Test? test;
public static Test? getInstance() {
? ? if (instance == null) {?
? ? ? ? test= new Test?();?
? ? }?
? ? return test;?
? ? }?
}
2阳掐、懶漢式 線程安全版
public class Test{
? ? private static Test test;?
? ? public static synchronized Test getInstance() {?
? ? if (test== null) {?
? ? ? ? test = new Test();?
? ? }?
? ? return test;?
? ? }??
}
3、餓漢式 線程安全,效率高蔚携,但是類創(chuàng)建就初始化對象精耐,容易浪費(fèi)內(nèi)存
public class?Test{
private static?Test tes=new Test();
public static synchronized?Test?getInstance() {
return?test;
? ? }??
}
4狼速、雙重驗(yàn)證方式? 采用雙鎖機(jī)制,安全且在多線程情況下能保持高性能卦停。
public class Test {
private static Testtest;
? ? public static TestgetSingleton() {
if (test ==null)
synchronized (Test.class) {
if (test ==null)
test =new Test();
? ?}
return test;
? ? }
}