单例模式

Java单例模式

​ 核心: 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。

​ 创建型模式,这里写的最简单的两个。其实还有双重检测锁式(由于JVM底层内部模型原因,偶尔会出问题。不建议使用); 静态内部类式(线程安全,调用效率高。 但是,可以延时加载); 枚举单例(线程安全,调用效率高,不能延时加载)

一、饿汉式

public class SingletonDemo {
    //类初始化时,立即加载(没有延时加载的优势)。这个对象加载类时,天然的线程安全!
    private static SingletonDemo instance = new SingletonDemo();	//加载类时就进行初始化
    
    private SingletonDemo() {}
    
    //方法没有同步调用效率高
    public static SingletonDemo getInstance() {
        return instance;
    }
}

二、懒汉式

public class SingletonDemo {
    
    private static SingletonDemo instance;
    
    private SingletonDemo(){}
    
    //需要synchronized关键字 防止重复构建对象,就是会降低并发时的效率
    public static synchronized SingletonDemo getInstance() {
        if(instance == null) {	//延迟加载
            instance = new SingletonDemo();
        }
        
        return instance;
    }
}
posted @ 2024-06-30 21:16  如此而已~~~  阅读(28)  评论(0)    收藏  举报
//雪花飘落效果