/** * 单例模式的五种写法: * 1、懒汉 * 2、恶汉 * 3、静态内部类 * 4、枚举 * 5、双重校验锁 */ /** * 五、 双重校验锁,在当前的内存模型中无效 */ class LockSingleton { private volatile static LockSingleton singleton; private LockSingleton() { } public static LockSingleton getInstance() { if (singleton == null) { synchronized (LockSingleton.class) { if (singleton == null) { singleton = new LockSingleton(); } } } return singleton; } } /** * 四、枚举,《Effective Java》作者推荐使用的方法,优点:不仅能避免多线程同步问题,而且还能防止反序列化重新创建新的对象 */ enum EnumSingleton { INSTANCE; public void doSomeThing() { } } /** * 三、静态内部类 优点:加载时不会初始化静态变量INSTANCE,因为没有主动使用,达到Lazy loading */ class InternalSingleton { private static class SingletonHolder { private final static InternalSingleton INSTANCE = new InternalSingleton(); } private InternalSingleton() { } public static InternalSingleton getInstance() { return SingletonHolder.INSTANCE; } } /** * 二、恶汉,缺点:没有达到lazy loading的效果 */ class HungrySingleton { private static HungrySingleton singleton = new HungrySingleton(); private HungrySingleton() { } public static HungrySingleton getInstance() { return singleton; } } /** * 一、懒汉,常用的写法 */ class LazySingleton { private static LazySingleton singleton; private LazySingleton() { } public static LazySingleton getInstance() { if (singleton == null) { singleton = new LazySingleton(); } return singleton; } }
相关推荐
浅谈Java中单例设计模式之构造方法私有化.pdf
Java多线程编程环境中单例模式的实现
主要介绍了Java中单例模式的7种写法,本文分别给出每种方式的实现代码,需要的朋友可以参考下
主要介绍了Java中单例模式详解,单例模式包括了懒汉式单例、饿汉式单例、登记式单例三种,想要了解的朋友可以了解一下。
主要介绍了java 中单例模式饿汉式与懒汉式的对比的相关资料,这里对这两种单例模式进行对比,希望大家能理解并应用,需要的朋友可以参考下
一个简单的java工程,包含注释,一目了然,其中包含了单例模式的所有实现方式,懒汉式,饿汉式,双重校验,枚举,静态内部类等方式实现单例。
单利模式是写代码过程中不可避免用到的,下面我总结一下单利常用的五种写法,话不多说了,来一起看看详细的介绍吧 加载类时创建单利 Java实现 public class Config{ private static Config INSTANCE=new Config...
自己总结的6中单例模式的写法,也有测试类,可以试验下,自己稍微修改一下后,验证安全性,纯粹为学习,建议可提
主要介绍了C#中单例模式的三种写法示例,本文分别给出代码实例,需要的朋友可以参考下
c++中单例模式对象的释放控制,txt文件格式的,哈哈哈
里面有单表的增删改查,多表级联的增删改查的操作,还囊括了我们常用的单选按钮,下拉列表,复选框的使用。对于初学者是个很不错的帮助工具,且分数也很低。
目前java中的单例模式有多种写法,kotlin中的写法更多一点,下面这篇文章主要给大家介绍了关于Kotlin中单例模式和Java对比的相关资料,会总结全部的到单例模式写法,需要的朋友可以参考下
# 单链表 Java 中单向链表的简单实现。
单例模式:简单的说,一个对象只负责一个特定的任务。 单例类: 1.构造函数需要标记为private,单例类不能再其他类中实例化,只能被其自身实例化 2.拥有一个保存类的实例静态成员变量 3.拥有一个访问这个实例的...
详细介绍了java中单例设计模式各种方式,已经改进方案
主要介绍了深入解析Java的设计模式编程中单例模式的使用,一般来说将单例模式分为饿汉式单例和懒汉式单例,需要的朋友可以参考下
主要介绍了C#中单例的实现方法,以实例形式分析了C#中单例的原理与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
java单点登录流程及其他