标签:on() lin syn 最大 实例 effect function sys ati
一、懒汉式,线程安全
public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }
这虽然是线程安全的,但是效率低。
二、饿汉式,线程安全
public class Singleton{
//类加载时就初始化
private static final Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
但是要是明确要求是需要懒加载的,这个就不行的
三、静态内部类
我比较倾向于使用静态内部类的方法,这种方法也是《Effective Java》上所推荐的。
public class Singleton {
|
四、枚举
用枚举写单例实在太简单了!这也是它最大的优点。下面这段代码就是声明枚举实例的通常做法。
public enum EasySingleton{
|
标签:on() lin syn 最大 实例 effect function sys ati
原文地址:https://www.cnblogs.com/chenmz1995/p/10487026.html