设计模式-单例模式(Java实现)

单例模式的分类

Java单例模式主要可以分为三种:

类型 特点
懒汉式 简单、线程不安全、懒加载
饿汉式 简单、线程安全、初始化的时候加载
双重检查 复杂、线程安全、懒加载
静态内部类 简单、线程安全、懒加载

懒汉式

    private SingleTest(){}

    private static SingleTest instance = null;

    public static SingleTest getInstance(){
        if(instance == null){
            instance = new SingleTest();
        }
        return instance;
    }

饿汉式

    private SingleTest(){}

    private static SingleTest instance = new SingleTest();

    public static SingleTest getInstance(){
        return instance;
    }

双重检查


private SingleTest(){}

    private static volatile SingleTest instance = null;

    public static SingleTest getInstance(){
        if(instance == null){
            synchronized (SingleTest.class){
                if(instance == null){
                    instance = new SingleTest();
                }
            }
        }
        return instance;
    }

静态内部类

    
    private SingleTest(){}

    private static class LazyHolder{
        private static SingleTest instance = new SingleTest();
    }

    public static SingleTest getInstance(){
        return LazyHolder.instance;
    }
posted @ 2022-09-04 19:40  Vinson-zhang  阅读(58)  评论(0)    收藏  举报