单例模式:在这个模式下,一个类只能有一个对象,有两种方式
1、饿汉式 在加载类时直接new出对象
package cn.gzsxt.servlet; public class SingletonEH { //私有化构造器 private SingletonEH(){} //创建一个对象 private static SingletonEH instance = new SingletonEH(); //提供一个公有的方法调用 public static SingletonEH getInstance(){ return instance; } }
2、懒汉式 在第一次调用getInstance()方法时new出对象
package cn.gzsxt.servlet; /** * @author jia *单例模式之懒汉式 */ public class SingletoneLH { //私有化构造器 private SingletoneLH(){} //创建一个空对象 private static SingletoneLH instance = null; //创建一个共有的方法new对象,并且返回该对象 public static SingletoneLH getInstance(){ if(instance == null){ synchronized (SingletoneLH.class) { if(instance == null){ instance = new SingletoneLH(); } } } return instance; } }