资讯专栏INFORMATION COLUMN

单例模式的几种写法

Youngs / 3054人阅读

摘要:单例模式要点私有的构造方法指向实例的私有静态引用获取实例对象的公有静态方法饿汉模式非线程安全私有化构造函数懒汉模式非线程安全私有化构造函数双重线程锁检查单例线程安全私有化构造函数枚举单例更多关于的文章请戳这里您的留言意见是对我最大的支持我的

单例模式要点

私有的构造方法

指向实例的私有静态引用

获取实例对象的公有静态方法

饿汉模式(非线程安全)
public class SingleTon {
    private SingleTon(){}//私有化构造函数
    private static final SingleTon singleTon=new SingleTon();
    public static SingleTon getInstance(){
        return singleTon;
    }
}
懒汉模式(非线程安全)
public class SingleTon {
    private SingleTon() {}//私有化构造函数
    private static SingleTon singleTon;
    public static SingleTon getInstance() {
        if (singleTon == null)
            singleTon = new SingleTon();
        return singleTon;
    }
}
双重线程锁检查单例(线程安全)
public class SingleTon {
    private SingleTon() {}//私有化构造函数
    private static volatile SingleTon singleTon;
    public static SingleTon getInstance() {
        if (singleTon == null){
            synchronized (SingleTon.class){
                SingleTon st=singleTon;
                if (st == null) {
                    st=new SingleTon();
                    singleTon=st;
                }
            }
        }
        return singleTon;
    }
}
枚举单例
public enum SingleTon{
    Instance;
}
更多关于java的文章请戳这里:(您的留言意见是对我最大的支持)

我的文章列表
Email:sxh13208803520@gmail.com

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66958.html

相关文章

  • 设计模式单例模式 (关于饿汉式和懒汉式)

    摘要:在写单例模式的代码之前,我们先简单了解一下两个知识点,关于类的加载顺序和关键字。懒汉和饿汉在程序编写上,一般将单例模式分为两种,分别是饿汉式和懒汉式,饿汉式在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。 定义 单例模式是比较常见的一种设计模式,目的是保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存。 单例模式的应用场景很多, 比如...

    Darkgel 评论0 收藏0
  • 单例模式你会几种写法

    摘要:使用静态类体现的是基于对象,而使用单例设计模式体现的是面向对象。二编写单例模式的代码编写单例模式的代码其实很简单,就分了三步将构造函数私有化在类的内部创建实例提供获取唯一实例的方法饿汉式根据上面的步骤,我们就可以轻松完成创建单例对象了。 前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 本来打算没那么快更新的,这阵子在刷Spring的书籍。在看...

    solocoder 评论0 收藏0
  • java单例模式几种实现方式分析

    摘要:饿汉模式线程安全,调用效率高,但是不能延时加载这样做的好处是编写简单,但是无法做到延迟创建对象。考虑线程安全的写法这种写法考虑了线程安全,将对的判断以及的部分使用进行加锁。如此即可从语义上保证这种单例模式写法是线程安全的。 饿汉模式 线程安全,调用效率高,但是不能延时加载 public class ImageLoader{ private static ImageLoade...

    GT 评论0 收藏0
  • Java实现单例几种方式

    摘要:单例模式的懒汉实现线程安全通过设置同步方法,效率太低,整个方法被加锁模拟在创建对象之前做一些准备工作使用上面的测试类,测试结果可以看到,这种方式达到了线程安全。可以说这种方式是实现单例模式的最优解。 1. 什么是单例模式 单例模式指的是在应用整个生命周期内只能存在一个实例。单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的重复创建,减少创建实例的系统开销,节省内存。 ...

    zengdongbao 评论0 收藏0
  • JAVA单例(Singleton)实现几种方式(多线程安全)

    摘要:缺点每次调用都有线程开销延迟初始化单例默认构造方法为,避免用户用构造出新对象获取单例的静态工厂同步方法延迟初始化单例使用同步方法保证多线程操作只实例化一个实力单例模式。 主要分为两种: 直接初始化 延迟初始化 直接初始化 直接初始化final静态成员 线程安全:JVM保证final静态成员只会被初始化一次 公有静态成员是个final域,直接引用成员获取单例 /** * 公有静态成...

    smartlion 评论0 收藏0

发表评论

0条评论

Youngs

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<