懒汉式与饿汉式的不同:懒汉式有延迟加载,如果多个线程访问时会出现安全问题,需要同同步的方式解决()双重判断),但是效率低。
使用的锁是该类所处的字节码文件对象,即类名.class
//懒汉式:
public class SingleTonDemo { /* * 私有化构造方法 */ private SingleTonDemo() { } /* * 创建对象 */ public static SingleTonDemo instance = null;//不创建对象,需要的时候才会创建 public static SingleTonDemo getInstance() { if (instance == null) {//提高性能 synchronized (SingleTonDemo.class) {//判断锁是否可用,耗资源 if (instance == null) {//判断是否为空 instance = new SingleTonDemo(); } } } return instance; }