茴香豆系列之单例的几种写法
1. 懒汉式
public class Singleton {private static Singleton instance;private Singleton(){}public static synchronized Singleton getInstance(){if (instance == null) {instance = new Singleton();}return instance;}
}
2. 饿汉式
public class Singleton {private static Singleton instance = new Singleton();private Singleton(){}public static Singleton getInstance(){return instance;}
}
3. 静态内部类
public class Singleton {private static class SingletonHolder{private static final Singleton instance = new Singleton();}private Singleton(){}public static final Singleton getInstance(){return SingletonHolder.instance;}
}
4. 枚举式
public enum Singleton {instance;public void somthing(){}
}
5. 锁两遍
public class Singleton {private volatile static Singleton singleton;private Singleton(){}public static Singleton getSingleton(){if (singleton == null) {synchronized (Singleton.class) {if (singleton == null) {singleton = new Singleton();}}}return singleton;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
