1、定义
对某个类只能存在一个对象实例,并且该类只提供一个取得对象实例的方法(静态方法)
保证系统内存中只存在一个对象,节省系统资源
对于需要频繁创建销毁的对象,使用单例模式可以提高系统性能
2、饿汉式
class Singleton {
//构造器私有化
private Singleton() {
}
//在类的内部创建对象
private final static Singleton instance = new Singleton();
//静态公共方法获取对象
public static Singleton getInstance() {
return instance;
}
}
优点:类装载时就完成实例化,避免了线程同步问题
缺点:可能造成创建了对象,但是没有使用
3、懒汉式
3.1、线程不安全
class Singleton {
//定义一个static静态属性对象
private static Singleton instance;
//构造器私有化
private Singleton() {
}
//向外暴露一个静态的公共方法,返回对象
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}