单例模式
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; } }
本文作者:如此而已~~~
本文链接:https://www.cnblogs.com/fragmentary/p/18276975
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步