单例设计模式的懒汉式和饿汉式以及它们的区别

单例模式:也叫单子模式,属于“创建模式”

一个类只有一个实例,并且自行实例化并向整个系统提供这个实例,这个类称为单例类。

单例类一个最重要的特点:类的构造方法是私有的。

何时使用:系统全局有且只有一个实例。

单例模式的懒汉式:

public class Single {
    //需要将变量定义成全局变量,这样不会再方法调用完直接销毁,使用static原因是静态方法中不能直接调用非静态属性
    private static Single single = null;//属性私有化防止在外部赋值为null
    //构造方法私有化,让其在类的外部一个对象都不能创建
    private Single(){}
    //我们可以类的内部创建对象,通过方法返回
    //因为类的外部不能创建对象,所以只能选泽静态方法进行返回对象
    public static Single getSingle(){
        //Single single = new Single();
        if(single == null){
            single = new Single();
        }
        return single;
    }
}

单例设计模式的饿汉式:

public class Singles {
    private static Singles singles = new Singles();
    private Singles(){}
    public static Singles getSingles(){
        return singles;
    }
}

两种方式的区别:

懒汉式饿汉式
效率

懒汉式每次执行方法的时候都要做出判断所以懒汉式的效率没有饿汉式高。
内存饿汉式在类加载的时候就会直接将对象创建出来,但此时可能不会直接使用,而懒汉式会在需要使用的时候才创建对象,所以相对而且懒汉式比饿汉式占用内存少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值