Java-这就是单例模式!

本文介绍了单例模式的概念,解释了为何需要使用单例模式,然后详细探讨了七种实现单例模式的方法,包括饿汉式、懒汉式、懒汉式加锁、懒汉式双重检查、静态匿名内部类和枚举方式。最后总结了各种方法的优缺点,推荐使用双重检查锁和枚举方式来实现单例。
摘要由CSDN通过智能技术生成
什么是单例模式

单例模式,自己负责创建自己的对象这个类提供了,一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。通俗的讲就是保证在整个应用程序的生命周期中只会被创建一次

为什么需要使用单例模式

1.避免对象被不断的创建,消耗不必要的系统资源。
2.如果不使用单例,可能在某些程序运行的时候将会出现错误。下面举一个例子,证明如果不使用单例会使什么样子的。
定义一个ShareResources(共享资源)类

//共享资源
public class ShareResources {

    private String name = "SmileJosiah";

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

    public String getName(){
        return name;
    }
}

//测试类
public class Demo {
    public static void main(String[] args) {
        ShareResources shareResources = new ShareResources();
        shareResources.setName("Bob");

        ShareResources shareResources1 =  new ShareResources();
        shareResources1.setName("Jack");

        //.... 但是这样改变了以后 这个共享的ShareResources中的name真的就是“Jack”吗?,答案显然不是
        //不管是修改为“Bob”还是“Jack”都是在对某一个具体的实例对象中的name进行了修改而已

        ShareResources shareResources2 = new ShareResources();
        System.out.println(shareResources2.getName());
    }
}
如何实现单例模式(七种方法)
  • 饿汉式(线程安全,可以使用)
//饿汉式
public class HungarySin
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值