单例模式:简单来说就是只能创建出一个对象(静态属性+私有构造)
常见的单例模式创建方法(2种):
饿汉模式:实例在类加载时就已经创建,线程是安全的
类加载时较慢,但运行时快
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton (){}
public static Singleton getInstance() {
return instance;
}
}
public class Singleton {
private Singleton instance = null;
static {
instance = new Singleton();
}
private Singleton (){}
public static Singleton getInstance() {
return this.instance;
}
}
懒汉模式:用户使用时才创建实例对象,线程是非安全的
类加载时快,但运行时较慢
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
多线程情况下,需要在判断对象是否为null时使用锁,以确保只能创建出一个对象
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
101万+

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



