懒汉式(线程不安全)
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
到调用getInstance()方法准备获取对象时才进行初始化对象 ,故名懒汉式;其特点是加载类快,调用getInstance()获取对象时慢
加锁(synchronized)就变成懒汉式 线程安全,缺点:效率低
2.饿汉式(线程安全)
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton (){}
public static Singleton getInstance() {
return instance;
}
}
很饿了,对象很早就初始化故名饿汉式,其特点是 加载类慢,调用getInstance()获取对象时快;并且这种方式基于classloder机制避免了多线程的同步问题
以上就是两种最基础的单例模式,可以根据实际情况,使用不同的单例模式已经相关的变种。
有什么建议与意见欢迎留言或联系作者^_^!
QQ:1056816512