单例模式的各种写法
来源:互联网 发布:cms php 编辑:程序博客网 时间:2024/04/29 01:41
面试的时候被问道了,长时间不用就当记录下吧
懒汉模式
public class Singleton { private static Singleton instance; private Singleton (){} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }}
懒汉模式double-check
public class SingleDemo { private static SingleDemo s = null; private SingleDemo(){} public static SingleDemo getInstance(){ /*如果第一个线程获取到了单例的实例对象, * 后面的线程再获取实例的时候不需要进入同步代码块中了*/ if(s == null){ //同步代码块用的锁是单例的字节码文件对象,且只能用这个锁 synchronized(SingleDemo.class){ if(s == null){ s = new SingleDemo(); } } } return s; }}
饿汉模式
public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; }}
这种方式基于classloder机制避免了多线程的同步问题,饿汉模式因为在类的装载时候 就直接实例化了 所以有点不太友好啊
匿名类 饿汉模式
public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){} public static final Singleton getInstance() { return SingletonHolder.INSTANCE; }}
spring当中 TruePointcut 使用到了饿汉模式
0 0
- 单例模式的各种写法评测
- 单例模式的各种写法
- 各种单例模式的写法
- 【转】单例模式的各种写法
- 单例模式的各种写法总结
- 单例模式的各种写法
- 各种单例的写法
- OC中各种单例模式写法
- Java单例模式的各种写法和最优写法推荐
- Java单例模式的各种写法和最优写法推荐
- 单例各种写法
- 单例模式的写法
- 单例模式的写法
- 单例模式的写法
- 单例模式的写法
- 单例模式的写法
- 单例模式的写法
- Java单例模式的各种写法(Initialization on Demand Holder模式)
- 根据中序遍历和后序遍历求二叉树的先序遍历
- Navicat For Mysql快捷键
- PHP 魔术方法__set() __get() 方法
- STM32 Keil仿真进不了Main()函数
- Animation动画详解(七)——ObjectAnimator基本使用
- 单例模式的各种写法
- uvaoj-10391:conpound words
- 代码规范化的重要性
- How to grow old
- linux网络编程相关函数(一)
- 微信公众平台开发文档 获取用户基本信息
- Ext基础
- 高级堆排序
- php使用分享(一)