Java基础---设计模式

本文介绍了设计模式中的单例模式,包括其概念和23种模式的概述。重点讲解了单例模式的两种实现方式:饿汉模式和懒汉模式。饿汉模式在类加载时就完成了初始化,牺牲了空间换取时间效率;而懒汉模式则在第一次调用时才进行初始化,实现了时间效率但增加了空间开销。通过测试代码展示了两种模式的实例比较,强调了它们在实际应用中的选择和权衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.设计模式概述

23种模式:

2.单例模式概述:

3.饿汉模式vs懒汉模式

3.1饿汉式(空间换时间)

//饿汉式:创建对象实例的时候直接初始化
public class SingletonOne {
    //1.创建类私有构造
    private SingletonOne(){

    }
    //2.创建该类型的私有静态实例
    private static SingletonOne instance=new SingletonOne();
    //创建公有静态方法返回静态实例对象
    public static SingletonOne getInstance(){
        return instance;
    }
}

3.2懒汉式(时间换空间)

//懒汉式:类种实例对象时并不初始化,直到第一次调用get方法时,才完成初始化操作
public class SingletonTwo {
    //1.创建类私有构造
    private SingletonTwo(){

    }
    //2.创建该类型的私有静态实例
    private static SingletonTwo instance=null;
    //创建公有静态方法返回静态实例对象
    public static SingletonTwo getInstance(){
        if(instance==null){
            instance=new SingletonTwo();
        }
        return instance;
    }
}

 测试:

public class test {
    public static void main(String[] args) {
        SingletonOne one=SingletonOne.getInstance();
        SingletonOne two=SingletonOne.getInstance();
        //==对于基本类型比较的是数据值,对于引用类型比较的是地址值
        System.out.println(one==two);
        System.out.println("--------------------");
        SingletonTwo one1=SingletonTwo.getInstance();
        SingletonTwo two1=SingletonTwo.getInstance();
        System.out.println(one==two);
    }
}

 3.3pk

 解决方法:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪八戒1.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值