//1饿汉式
class Single {
private static final Single s = new Single();
private Single() {
}
public static Single getInstance() {
return s;
}
}
// final 强烈推荐
// -------------------------------------------
// 2.方法2 懒汉式
class Single {
private static Single s = null;
private Single() {
}
public static Single getInstance() {
if (s == null) {
s = new Single();// 延迟加载
}
return s;
}
}
// 如果是单线程这样是可以的,多线程有安全隐患
// 3-------------------------------------------
class Single {
public static Single s = null;
private Single() {
}
public static synchronized Single getInstance() {
if (s == null) {
s = new Single();
}
return s;
}
}
// 上面这种方法 效率太慢!
// 4---------------------------------------------
class Single {
public static Single s = null;
private Single() {
}
public static Single getInstance() {
if (s == null) {
synchronized (Single.class) {
if (s == null) {
s = new Single();
}
}
}
return s;
}
}
第一种和第四种都是可以的,但是还是推荐第一种!
本文详细介绍了单例模式的四种实现方式:饿汉式、懒汉式等,并对比了它们的优缺点,重点推荐使用饿汉式的实现方法。
1067

被折叠的 条评论
为什么被折叠?



