java 单例模式懒汉和饿汉

对于单例模式就是保证内存中仅仅创建一个该类的实例对象

针对于其对象的创建时间,分为懒汉模式和饿汉模式

懒汉模式下:使用该类的情况下在进行对象的创建,而饿汉模式下,则是直接将该类及其对象直接加载进内存

两种模式的测试,因为直接私有了构造方法,因此该对象在该类的内部直接创建,因此返回该类的对象的方法需以static修饰符进行修饰。然后便可以调用该类的其他公共方法,且保证该类的对象仅在内存中加载过一次。

代码如下:

懒汉模式:

public class LazyPattern {
    private static LazyPattern pattern;
    private LazyPattern(){
        
    }
    public static LazyPattern getLazyPattern() {
        if (pattern==null) {
            pattern = new LazyPattern();
        }
        return pattern;
    }
    public void function() {
        System.out.println("懒汉的方法");
    }

}
饿汉模式:

public class HPattern {
    private static HPattern pattern = new HPattern();
    private HPattern() {
        
    }
    public static HPattern getHPattern() {
        return pattern;
    }
    public void function() {
        System.out.println("饿汉的方法");
    }

}

测试类的代码:

public class Test {
public static void main(String[] args) {
    HPattern pattern = HPattern.getHPattern();
    pattern.function();
    LazyPattern pattern2 = LazyPattern.getLazyPattern();
    pattern2.function();
}
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值