单例模式( Singleton Pattern )是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛,例如,总统,班主任等。J2EE标准中的ServletContext 、ServletContextConfig 等、Spring框架应用中的。
饿汉式单例模式
饿汉式单例模式在类加载的时候就立即初始化,并且创建单例对象。它绝对线程安全,在线程还没出现以前就实例化了,不可能存在访问安全问题。
标准饿汉模式,通过私有构造器,防止外部进行实例创建;通过属性在类加载时实例化对象,提供全局访问方法取得实例。利用代码的执行先后顺序,在线程还没有出现前就完成了实例化。
public class HungrySingleton {
//先静态,后动态
//先属性,后方法
//先上后下
private static final HungrySingleton hungrySingleton = new HungrySingleton();
/**
* 私有构造
*/
private HungrySingleton() {}
//取实例方法
public static HungrySingleton getInstance() {
return hungrySingleton;
}
}
静态代码块机制,实现单例模式。
public class HungryStaticSingleton {
//静态志方式