设计模式。单例饿汉式(最常用的单例模式)

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式。单例饿汉式(最常用的单例模式)相关的知识,希望对你有一定的参考价值。

 单例的好处 就是就引用一个对象。可以防止内存多余的加载

也是面试题必须问到的一个问饿汉式

简单实用,推荐使用

优点:JVM保证线程安全(jvm保证内存就load一次)

缺点:不管用没用到。在类装载的时候就完成了初始化。

这种写法是最常用的单例模式

package com.yzdzy.design.singleton;

/**
 * 饿汉式。直接创建出来
 */
public class Mgr01 
    private static final Mgr01 mInstance = new Mgr01();

    private Mgr01() 
    

    public static Mgr01 getInstance() 
        return mInstance;
    

    public void m() 
        System.out.println("m");
    

    public static void main(String[] args) 
        Mgr01 m1 = Mgr01.getInstance();
        Mgr01 m2 = Mgr01.getInstance();
        System.out.println(m1 == m2);
    


> Task :Mgr01.main()
true

当然这种设计模式,也可以这么写

package com.yzdzy.design.singleton;

/**
 * 饿汉式。直接创建出来
 */
public class Mgr02 
    private static Mgr02 mInstance;
    private Mgr02()

    static 
        mInstance = new Mgr02();
    

    public static Mgr02 getInstance() 
        return mInstance;
    

    public void m() 
        System.out.println("m");
    

    public static void main(String[] args) 
        Mgr02 m1 = Mgr02.getInstance();
        Mgr02 m2 = Mgr02.getInstance();
        System.out.println(m1 == m2);
    


以上是关于设计模式。单例饿汉式(最常用的单例模式)的主要内容,如果未能解决你的问题,请参考以下文章

单例模式

设计模式-单例

JUC并发编程(13)--- 彻底玩转单例模式

手写单例模式(饿汉和饱汉模式)和工厂模式

单例模式—层层剖析寻找最高效安全的单例

单例饿汉式和饱汉式各自的有缺点(转)