当我们想要一个类只产生一个实例化对象时,就需要用到单例模式,单例设计模式分为两种:饿汉式和懒汉式。
1 饿汉式单例
当用到这个类时,不管是否需要一个对象都会创建一个实例化对象
public class Singleton {
private final static Singleton INSTANCE = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return INSTANCE;
}
public static void main(String[] args) {
System.out.println(Singleton.getInstance() == Singleton.getInstance());
}
}
2 懒汉式单例
当需要实例化对象时,才会为你创建一个对象
需要注意的是,懒汉式存在多线程安全问题
public class Singleton {
private static Singleton instance;
private Singleton(){
}
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
public void println(){
};
public static void main(String[] args) {
Singleton singleton = null;
singleton = Singleton.getInstance();
singleton.println();
}
}