单例模式~
创始人
2024-12-28 16:37:02
0

概要

确保一个类只有一个实例,并提供一个全局访问点来访问该实例。

主要解决的问题

频繁创建和销毁全局使用的实例,减少开销。

解决思路

如果有该实例就返回,没有就创建。

应用场景

数据库连接池、线程池、spring中service等

几种实现方式

懒汉式 (多线程不安全)

实现简单

public class Singleton {     private static Singleton instance;     private Singleton(){}     private static Singleton getinstance(){         if(instance==null){             instance = new Singleton();         }         return instance;     } } 

懒汉式(多线程安全)

优点:第一次调用才初始化,避免内存浪费。
缺点:必须加锁 synchronized 才能保证单例,但加锁会影响效率。

public class Singleton {     private static Singleton instance;     private Singleton(){}     private static synchronized Singleton getinstance(){         if(instance==null){             instance = new Singleton();         }         return instance;     } }

饿汉式(多线程安全)

优点:没有加锁,执行效率会提高。
缺点:类加载时就初始化,浪费内存。

public class Singleton {     private static Singleton singleton = new Singleton();     private Singleton(){}     public static Singleton getInstance(){         return singleton;     } } 

双重检查(线程安全)

public class Singleton {     private static volatile Singleton singleton;     private Singleton(){}     public static Singleton getInstance(){         if (singleton==null){             synchronized (Singleton.class){                 if (singleton==null){                     singleton = new Singleton();                 }             }         }         return singleton;     } } 

内部静态类(线程安全)

public class Singleton {     private static class SingletonHolder {         private static final Singleton INSTANCE = new Singleton();     }     private Singleton() {}     public static final Singleton getInstance() {         return SingletonHolder.INSTANCE;     } } 

枚举 

public enum SingletonTwo {     INSTANCE;     public void whateverMethod() {     } }

相关内容

热门资讯

据目击者称!一起宁德钓蟹辅助器... 据目击者称!一起宁德钓蟹辅助器,游戏浙江大厅脚本修改(一直存在有安装)-哔哩哔哩1)游戏浙江大厅脚本...
解密透视!hh poker透视... 解密透视!hh poker透视器下载,hhpoker辅助软件是真的么,切实一直都是有辅助方法(哔哩哔...
一直以来!江湖悠悠手游多开辅助... 一直以来!江湖悠悠手游多开辅助,湖湘互娱牛牛(果然是真的工具)-哔哩哔哩1、完成江湖悠悠手游多开辅助...
推荐透视!hhpoker有没有... 推荐透视!hhpoker有没有作比弊挂,hhpoker怎么防作比弊,切实有辅助教程(哔哩哔哩)1、下...
事发当天!悦悦娱乐辅助,闲逸碰... 事发当天!悦悦娱乐辅助,闲逸碰胡辅助器(确实真的是有器)-哔哩哔哩1、下载好闲逸碰胡辅助器脚本下载之...
关于透视!aapoker透视脚... 关于透视!aapoker透视脚本入口,aapoker怎么控制牌,确实存在有辅助攻略(哔哩哔哩)1、破...
在玩家背景下!打哈儿麻将辅助软... 在玩家背景下!打哈儿麻将辅助软件,微信边锋辅助挂件(总是真的有平台)-哔哩哔哩1.打哈儿麻将辅助软件...
专业透视!wejoker辅助软... 专业透视!wejoker辅助软件视频,wepoker到底有没有透视,一贯一直总是有辅助工具(哔哩哔哩...
突发!新悠悠拼十辅助,微乐贵阳... 突发!新悠悠拼十辅助,微乐贵阳捉鸡麻将辅助(一直存在有器)-哔哩哔哩微乐贵阳捉鸡麻将辅助辅助器是一种...
教你透视!wepoker智能辅... 教你透视!wepoker智能辅助插件,wepoker有用吗,切实一直总是有辅助app(哔哩哔哩)在进...