文档章节

单例模式

远方_fun
 远方_fun
发布于 2016/03/29 17:07
字数 151
阅读 10
收藏 0

单例一:饿汉式

public class SingletonDemo01 {
	private static SingletonDemo01 INSTANCE = new SingletonDemo01();
	
	private SingletonDemo01(){
		if(INSTANCE !=null){
			throw new RuntimeException("不要用反射搞我..");
		}
	}
	
	public static SingletonDemo01 getInstanc(){
		return INSTANCE;
	}
}


单例二:懒汉式 [ 双重检查锁 ]

public class SingletonDemo02 {
	private volatile static SingletonDemo02 INSTANCE =null;
	
	private SingletonDemo02(){
		if(INSTANCE !=null){
			throw new RuntimeException("不要用反射搞我..");
		}
	}
	
	public static SingletonDemo02 getInstanc(){
		if(INSTANCE == null){
			synchronized (SingletonDemo02.class) {
				if (INSTANCE == null) {
					INSTANCE = new SingletonDemo02();
				}
			}
		}
		return INSTANCE;
	}
}


单例三:静态内部类模式

public class SingletonDemo03 {
	private SingletonDemo03(){
		if(SingletonDemo03InnerClass.INNERINSTANCE !=null){
			throw new RuntimeException("不要用反射搞我..");
		}
	}
	
	private static class SingletonDemo03InnerClass{
		private static SingletonDemo03 INNERINSTANCE = new SingletonDemo03();
	}
	
	public static SingletonDemo03 getInstanc(){
		return SingletonDemo03InnerClass.INNERINSTANCE;
	}
}


单例四:枚举式

public enum SingletonDemo04 {
	INSTANCE;
}


© 著作权归作者所有

共有 人打赏支持
上一篇: 简单工厂
远方_fun
粉丝 1
博文 24
码字总数 6987
作品 0
杭州
程序员
私信 提问

暂无文章

生产者消费者问题(PV操作)

一、明确定义 要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减...

shzwork
22分钟前
0
0
重新认识网络通信协议

OSI网络分层 应用层 http, smtp,pop3这些都属于应用层协议 为用户的应用程序提供服务 表示层 确保一个系统的应用层发送的信息被另一个系统的应用层接收到 会话层 通过传输层建立数据传输的通...

最胖的瘦子
34分钟前
1
0
【转】分布式数据流的轻量级异步快照

本篇翻译自论文:Lightweight Asynchronous Snapshots for Distributed Dataflows,Flink的容错快照模型即来源于该论文。原文地址:https://arxiv.org/pdf/1506.08603.pdf 分布式数据流的轻量...

yiduwangkai
36分钟前
0
0
java使用反射机制设置私有成员变量的值

写一个方法:public void setProperty(Objectobj, String propertyName, Object value){}, 此方法可将obj对象中名为propertyName的属性的值设置为value。(这里不知道obj对象的propertyNam...

群星纪元
42分钟前
0
0
用 Tapestry 的方式在页面模板中加入注释

<span jwcid="$remove$">这里是注释</span>

LeoXu
42分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部