java单例模式的经典案例

1.单例模式——》1.饿汉式        2.懒汉式

1.饿汉式

/**
 * @version 1.0
 * function: 单例模式的经典应用      1.饿汉式,
 * author:阿卜杜赛麦提
 * @date:2022/12/29 13:25
 */
//1.构造器私有化
//2.在该类里面创建,静态的对象
//3.提供一个公用的方法返回该类的对象
/**
 * //存在的问题——》在来加载时创建对象(如我们用该类的一个静态属性是发生类加载此时同时创建该类的对象如果我们没用到该对象——》这导致资源浪费)
 * */
public class GirlFriend {
private String name;
public static int a1=100;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    //构造器私有化
    private GirlFriend(String name) {
        System.out.println("new对象是构造器被调用");
        this.name = name;
    }
    /**
     * 创建该类的静态的对象————》类加载时自动创建对象
     * */
    static GirlFriend girlFriend=new GirlFriend("小花");//类加载时初始化
    public static GirlFriend getGirlFriend(){
        return girlFriend;
    }
}

class TTst{
    public static void main(String[] args) {
        //两个都是同一个对象
//       GirlFriend Gir= GirlFriend.getGirlFriend();
//       GirlFriend Gir1= GirlFriend.getGirlFriend();
//        System.out.println(Gir.getName());//小花
//        System.out.println(Gir1.getName());//小花
//        System.out.println(Gir1==Gir); //true
        System.out.println(GirlFriend.a1);//  1.new对象是构造器被调用        2.100

    }
}

2.懒汉式

/**
 * @version 1.0
 * function:单例模式    2.懒汉式
 * author:阿卜杜赛麦提
 * @date:2022/12/29 14:35
 */
//1.构造器私有化
//2.在该类里面创建,静态的对象
//3.提供一个公用的方法返回该类的对象
/**
 * //存在的问题——》存在线程安全问题
 * */


public class Cat {
    private static Cat cat=null;
    public static int a1=200;
    private String name;

    //构造去私有化
    private Cat(String name) {
        System.out.println("构造器被调用");
        this.name = name;
    }
    //这个方法被调用是创建该类的对象并返回
    public static Cat getCat(){
        if (cat==null){
            cat=new Cat("小黄猫");
        }
        return cat;
    }
}
class CatTest{
    public static void main(String[] args) {
        System.out.println(Cat.a1);
        Cat cat=Cat.getCat();
        //首先输出200
        //再输出构造器被调用

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿卜杜赛麦提爱编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值