/*
*饿汉模式
*/
public class EagerSingleton {
private static EagerSingleton eagerSingleton=new
EagerSingleton();
private EagerSingleton()
{
super();
}
public static EagerSingleton
getInstance(){
return eagerSingleton;
}
}
/*
*懒汉模式
*优点: 不使用就不创建, 节省内存空间。
* 缺点: synchronized 对方法的影响是永久性的。 多线程环境下,
getInstance性能很低。
* /
public class LazySingleton {
private static LazySingleton lazySingleton=null;
private
LazySingleton() {
super();
}
public static synchronized
LazySingleton
getInstance(){
if(lazySingleton==null){
lazySingleton=new
LazySingleton();
}
return lazySingleton;
}
}
/*
* 优点: 1. lazy
* 2. 当创建对象时, 如果多线程进入 , 没关系。 静态属性的初始化过程 天生具备
线程安全!!
*/
public class StaticSingeton {
private StaticSingeton() {
super();
}
private static
class Temp {
public static StaticSingeton ss = new
StaticSingeton();
}
public static StaticSingeton
getInstance(){
return Temp.ss;
}
}
原文:http://www.cnblogs.com/dyaimee/p/3724885.html