这两种方式在提高性能的同时又保证了线程安全
第一种:static inner class 静态内部类(饿汉式):
public class StringTest {
public static class Singltion{
private static Singltion singltion=new Singltion();
public static Singltion getInstance() {
return Singltion.singltion;
}
}
}
第二种: dubble check instance (懒汉式):
public class StringTest {
private static StringTest stringTest;
public static StringTest getInstance() {
if (stringTest == null) {
try {
// 初始化准备时间
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (StringTest.class) {
// 如果不再次判断的话,会出现问题,就不是单利模式了
if (stringTest == null) {
stringTest = new StringTest();
}
}
}
return stringTest;
}
}