单例设计模式
单例设计指的是一个类只允许产生一个实例化对象。
饿汉式
在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。
eg:
class Singleton1 {
private Singleton1(){}
private static final Singleton1 singleton1 = new Singleton1();
public static Singleton1 getInstance(){
return singleton1;
}
public void Print(){
System.out.println("hello");
}
}
懒汉式
当程序第一次访问单件模式实例时才进行创建。
class Singleton2{
private Singleton2(){}
private static Singleton2 s= null;
public static Singleton2 getInstance(){
if (s == null){
s = new Singleton2();
}
return s;
}
}
饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题,
懒汉式本身是非线程安全的,为了实现线程安全可以使用加锁等方法。