java类单例模式——Java学习之②

package DesignPattern;
public class Singleton {
    /*
     * 饿汉式单例模式
     * 饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用
     * 以后不再改变,但是占用内存
     */
    private Singleton() {//构造方法私有化
    }
    private static Singleton  instence = new Singleton();//private static修饰的实例化对象
    public Singleton getinstence(){//使用静态方法返回该实例
        return instence;
    }
}

class Singleton2 {
    /* 
     * 懒汉式不是线程安全的,用到时候再实例化
     * 所以需要夹上锁
     */
    private Singleton2(){
    }
    private static Singleton2 instence2;
    public Singleton2 getinstence2(){
        if (instence2 == null) {
            instence2 = new Singleton2();
        }
        return instence2;
    }
}

你可能感兴趣的:(java类单例模式——Java学习之②)