单例模式的几种实现
来源:互联网 发布:小天才手表没有网络 编辑:程序博客网 时间:2024/06/06 02:31
1、饿汉式,线程安全 但效率比较低
public class Singleton0 { /** * 定义私有构造方法(防止通过 new SingletonTest()去实例化) */ private Singleton0() { } private final static Singleton0 instance = new Singleton0(); public static Singleton0 getInstance() { return instance; }}
2、只适用于单线程环境,饱汉式,非线程安全 。
public class Singleton1 { /** * 将构造方法设置成私有的,禁止他人创建实例。 */ private Singleton1() { } private static Singleton1 instance; public static Singleton1 getInstance() { if (instance == null) { instance = new Singleton1(); } return instance; }}
3、适用于多线程环境,饱汉式,线程安全简单实现
public class Singleton2 { private Singleton2() { } private static Singleton2 instance; public static synchronized Singleton2 getInstance() { if (instance == null) { instance = new Singleton2(); } return instance; }}
4、加同步锁之后两次判断实例是否存在,内存占用小,效率高,线程安全,多线程操作原子性。
public class Singleton3 { private Singleton3() { } private static Singleton3 instance; public static Singleton3 getInstance() { if (instance == null) { synchronized (Singleton3.class) { if (instance == null) { instance = new Singleton3(); } } } return instance; }}
5、实现按需创建实例。
public class Singleton4 { private Singleton4() { } public static synchronized Singleton4 getInstance() { return SingleHolder.instance; } private static class SingleHolder { private static Singleton4 instance = new Singleton4(); }}
阅读全文
0 0
- 单例模式的几种实现
- 单例模式的几种实现
- 单例模式的几种实现
- 单例模式的几种实现
- 单例模式的几种实现
- IOS实现单例模式的几种实现方法
- IOS实现单例模式的几种实现方法
- 单例模式的几种实现方式的对比
- java单例模式的几种实现
- JAVA单例模式的几种实现方法
- 单例模式singleton的几种实现方式
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- 单例模式的几种实现及其比较
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- JAVA单例模式的几种实现方法
- 单例模式(singleton pattern)的几种实现
- Maven项目导入到eclipse中
- jmeter.bat启动时提示:'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- 8.6-全栈Java笔记:Math类和枚举
- C++泛型函数模板类型
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- 单例模式的几种实现
- Servlet
- opencv文件夹中vc和VS对应关系
- php闭包中使用变量
- 【Linux】 JDK安装及配置 (tar.gz版)
- Redis学习(四)Redis的特性和Keys的通用操作
- Filter过滤器
- sonarQube代码质量管理平台
- 9.1-全栈Java笔记: 容器&泛型—认识Collection接口