java单例模式4种使用方式分享
2014-02-18 09:28
603 查看
1、Java Concurrency In Practice的List
public class Singleton {
private static class SingletonHolder {
public static Singleton resource = new Singleton();
}
public static Singleton getResource() {
return SingletonHolder.resource ;
}
private Singleton(){
}
}
2、effective Java
public class Singleton {
public static final Singleton INSTANCE = new Singleton();
private Singleton(){}
public void method(){
//...
}
public static void main(String[] a){
//调用方法。
Singleton.INSTANCE.method();
}
}
3、利用枚举巧妙创建单实例
/**
* 利用枚举巧妙创建单实例
*/
public enum Singleton {
INSTANCE;
public void method(){
//...
}
public static void main(String[] a){
//调用方法。
Singleton.INSTANCE.method();
}
}
4、双重锁
public class Singleton {
private static volatile Singleton instance = null;
/**
* 防止其他人new对象
*/
private Singleton(){
System.out.println("init");
}
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
}
您可能感兴趣的文章:
相关文章推荐
- 跟大家分享Entity Framework使用Code First方式如何连接到现有数据库
- java当中的定时器的4种使用方式
- Java 定时器4种使用方式
- QThread 使用MoveToThread方式 槽函数不执行 分享
- java当中的定时器的4种使用方式
- OpenGL中主要的4种矩阵如何理解(使用类比方式以便于方便理解)
- java当中的定时器的4种使用方式
- ASP.NET MVC使用中转站方式获取code实现微信登录,分享功能
- 类成员的4种使用方式
- Android界面设计的4种方式之三——使用XML和JAVA代码混合控制UI界面
- 如何在 XCode 4.2 設定部分程式碼不使用 ARC 方式分享(转)
- 通过RTLabel、RCLabel、FTCoreText及webView结合SDWebImage等4种方式实现左滑或下拉中cell中图文混排使用场景方案
- lucene FieldCache 内部细节和使用方式分享
- 如何在 XCode 4.2 設定部分程式碼不使用 ARC 方式分享(转)
- 通过RTLabel、RCLabel、FTCoreText及webView结合SDWebImage等4种方式实现左滑或下拉中cell中图文混排使用场景方案
- java当中的定时器的4种使用方式
- 使用4种不同的方式访问数组中的元素
- java当中的定时器的4种使用方式
- CSS样式的4种使用方式
- 通过RTLabel、RCLabel、FTCoreText及webView结合SDWebImage等4种方式实现左滑或下拉中cell中图文混排使用场景方案