package com.dream.design; /** * @author zxg * 饿汉模式 1构造方法私有 2创建一个静态对象 3提供拿对象的方法 */ public class Sigleton { private Sigleton(){ } private Sigleton sigleton = new Sigleton(); public Sigleton getInstance(){ return sigleton; } }
package com.dream.design; /** * @author zxg * 懒汉模式 1 构造方法私有化 2提供一个私有对象 3提供取对象方法 */ public class Sigleton2 { private Sigleton2(){ } private Sigleton2 sigleton; public Sigleton2 getInstance(){ if(sigleton==null){ return new Sigleton2(); }else{ return sigleton; } } }
懒汉模式跟饿汉模式区别
1 加载方式不同,饿汉模式在类加载时候就生成对象,懒汉模式在取对象的时候才生成
2 线程安全问题,饿汉式安全的,懒汉线程不安全的
3 故饿汉模式在加载时候速度慢,运行时候速度快,懒汉模式相反