Java单例模式与延迟加载分析 Singleton & Lazy Initialized
来源:互联网 发布:歼15模型淘宝 编辑:程序博客网 时间:2024/06/01 09:48
/*
* 单态类:使用内部类方式 根据Java规范,JVM将保证在使用到内部类时才去初始化其成员变量,并保证线程安全(推荐)
*/
public class Singleton{
private static class InnerClass{
private static Singleton singleton = new Singleton();
}
public static Singleton getInstance(){
return InnerClass.singleton;
}
}
/*
* 单态类:非线程安全,仅在单线程中能够保证唯一实例
*/
class SingletonSingleThread{
private static SingletonSingleThread instance;
private SingletonSingleThread(){}
public static SingletonSingleThread getInstance(){
if(instance == null)
instance = new SingletonSingleThread();
return instance;
}
}
/*
* 单态类一:线程安全。但非延迟初始化,可能造成资源浪费
*/
class SingletonOne{
private static SingletonOne instance = new SingletonOne();
private SingletonOne(){}
public static SingletonOne getInstance(){
return instance;
}
}
/*
* 单态类二:普通的单态类设计,但可能效率相对低
*/
class SingletonTwo{
private static SingletonTwo instance;
private SingletonTwo(){}
public static synchronized SingletonTwo getInstance(){
if(instance == null)
instance = new SingletonTwo();
return instance;
}
}
/*
* 单态类三:允许延迟初始化单态类,需要JSR133(但仍然可能存在问题)
*/
class SingletonThree{
private static volatile SingletonThree instance;
private SingletonThree(){}
public static SingletonThree getInstance(){
if(instance == null){
synchronized(SingletonThree.class){
if(instance == null)
instance = new SingletonThree();
}
}
return instance;
}
}
- Java单例模式与延迟加载分析 Singleton & Lazy Initialized
- java延迟加载与单例模式
- 延迟加载与单例模式
- Java单例模式及延迟加载
- java与模式 单例(Singleton)
- 单例延迟加载模式
- Hibernate3延迟加载(lazy loading)详细分析与解释
- java设计模式,单例模式(延迟加载)
- 通过Singleton单例模式,理解Java的类加载
- java编写一个延迟加载的单例设计模式
- java实现多线程延迟加载的单例模式
- 《java与模式》-8 单例模式 singleton
- [Java] Singleton 单例模式
- java Singleton 单例模式
- java单例模式(Singleton)
- Java单例模式Singleton
- Java Singleton 单例模式
- [java]单例模式Singleton
- 逻辑推理
- 抽象类和接口的区别,使用场景
- 享元模式
- 谷歌老了!百度雄起!!!
- js/css在ajax UpdatePanel 中没有效果的解决方法
- Java单例模式与延迟加载分析 Singleton & Lazy Initialized
- 3.24-如何动态的改变某个视图的光标?
- 从事ERP行业经历的三个阶段的经验总结
- JavaScript无提示关闭窗口
- OpenGL ES 2.0 Programming Guide这本书相关资源下载及编译环境建立说明
- Java中的public、 protected、 default、 private
- J2ME手机移动通讯开发记录存储管理系统的例子
- Javascript 数组学习一则
- enctype="multipart/form-data" 作用