懒汉式单例和饿汉式单例
懒汉式单例
//懒汉式单例 ,在第一次调用的时候实例化自己 饿汉式灰猫线程不安全风险
//懒汉式单例的实现没有考虑线程安全问题,它是线程不安全的,并发环境下很可能出现多个Singleton实例。
public class Singleton{
private Singleton(){}
private static Singleton singleton = null;
//静态工厂方法
public static Singleton getInstance(){
if(singleton != null ){
singleton = new Singleton ();
}
}
}
//饿汉式单例类.在类初始化时,已经自行实例化
//饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
public class Singleton{
private Singleton(){}
private static final Singleton singleton = new Singleton();
//静态工厂方法
public static Singleton getInstance(){
return singleton ;
}
}

浙公网安备 33010602011771号