java单例模式优缺点(懒汉模式,饿汉模式,双重检查加锁模式)

三种单例模式实际都是有运用的。

 

懒汉式单例模式:

优点:延迟加载

缺点:不加同步的懒汉式是线程不安全的,加了synchronized之后就变成线程安全的了

public class Singleton {
	private static Singleton singleton = null;
	private Singleton(){
	}
	public static synchronized Singleton getInstance(){
		if(singleton == null){
			singleton = new Singleton();
		}
		return singleton;
	}
}

 

饿汉式单例模式

优点:线程安全

缺点:浪费内存空间

实例应用:java.lang.Runtime

public class Singleton {

    private static final Singleton singleton = new Singleton();

    private Singleton(){

    }

    public static Singleton getInstance(){

       return singleton ;

    }

}

 

双重检查加锁模式:

特点:性能又保证线程安全

public class Singleton{

    private static Singleton singleton;   

    private Singleton(){

    }

    public static Singleton getInstance(){

       if(singleton == null){

           synchronized(Singleton.class){

              if(singleton == null){

                  singleton = new Singleton();

              }
           }
       }

    return singleton;
    }
}

 

    原文作者:java锁
    原文地址: https://blog.csdn.net/qq_42145871/article/details/82014532
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞