单例模式~
创始人
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)微乐小程序游戏破解器...
技术分享开挂!微信小程序微乐辅... 技术分享开挂!微信小程序微乐辅助器,微乐贵阳捉鸡麻将能不能开挂-一贯是真的有辅助工具在进入微信小程序...
科技介绍开挂!微乐小程序家乡自... 科技介绍开挂!微乐小程序家乡自建房辅助app,微乐自建房脚本如何下载-其实是有辅助神器1、超多福利:...
重大通报辅助!微信小程序微乐辅... 重大通报辅助!微信小程序微乐辅助器教程,微乐小程序微乐家乡辅助器-都是真的有辅助插件重大通报辅助!微...
玩家必备教程辅助!微信小程序游... 玩家必备教程辅助!微信小程序游戏破解微乐游戏,微信小程序微乐安徽辅助苹果-确实有辅助脚本1、完成微信...
科技分享开挂!微乐手游辅助脚本... 科技分享开挂!微乐手游辅助脚本平台,微乐小程序辅助器免费-其实有辅助神器一、微乐手游辅助脚本平台可以...
发现玩家辅助!微乐小程序辅助工... 您好,微乐小程序辅助工具这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多...
推荐一款透视挂!微乐小程序家乡... 推荐一款透视挂!微乐小程序家乡自建房辅助app,微乐河南小程序微乐辅助脚本-原来存在有辅助挂微乐小程...
一起来探讨开挂!微乐小程序开挂... 一起来探讨开挂!微乐小程序开挂黑科技,微乐自建房免费黑科技推荐-本来真的是有辅助脚本小薇(辅助器软件...
2024教程辅助!微信小程序微... 2024教程辅助!微信小程序微乐辅助免费,微乐小程序辅助教程-都是是真的有辅助挂1、点击下载安装,微...