首页 > 编程语言 >Java设计模式-单例模式

Java设计模式-单例模式

时间:2023-10-12 16:34:21浏览次数:35  
标签:设计模式 Java private INSTANCE static 单例 SingletonDemo SingletonDemo2

1、用到过的场景

  • 需要一样的对象放入数组中
  • 构建类的方式固定

2、饿汉模式(不要用)

package com.cc.eed.sin;

/**
 * <p>单例模式 - 饿汉 (线程不安全)</p>
 *
 * @author CC
 * @since 2023/10/12
 */
public class SingletonDemo2 {

    private static final SingletonDemo2 INSTANCE = new SingletonDemo2();

    private SingletonDemo2(){
    }

    public static SingletonDemo2 getInstance() {
        return INSTANCE;
    }

}

3、懒汉模式

  • 推荐使用:双重验证 + 锁
package com.cc.eed.sin;

/**
 * <p>单例模式 - 懒汉 (线程安全)</p>
 * <li>双重验证 + 锁</li>
 *
 * @author CC
 * @since 2023/10/12
 */
public class SingletonDemo {

    private static SingletonDemo INSTANCE;

    private SingletonDemo(){
    }

    public static SingletonDemo getInstance() {
        if (INSTANCE == null) {
            synchronized (SingletonDemo.class) {
                if (INSTANCE == null) {
                    INSTANCE = new SingletonDemo();
                }
            }
        }
        return INSTANCE;
    }

}

4、参考:
https://www.cnblogs.com/ladderx/p/16854962.html

标签:设计模式,Java,private,INSTANCE,static,单例,SingletonDemo,SingletonDemo2
From: https://www.cnblogs.com/kakarotto-chen/p/17759808.html

相关文章

  • java算法之排序算法大全
    ①排序所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制......
  • 终于搞懂如何用Java去除HTML标签了
    在我平时的工作中,偶尔会用Java做一些解析HTML的工作。有的时候我需要删除所有的HTML标签,只保留纯文字内容。这个问题在做过一些爬虫工作的朋友来说很简单。下面来说说,我们平时使用到的集中解析的方法。使用正则表达式通过爬虫爬到的HTML内容,从程序角度来讲,就是一个字符串。我们......
  • java课程分享四种嵌入式arm调试方法
    作者|杂烩君转自|嵌入式大杂烩我们常常说,软件三分写七分调。实际开发中,确实也是这样子的。我工作这几年了,对这体会也越来越深。每当需求一下来,我代码很快就可以写完,但是,调试需要花很多时间。这里需要明确的是,调试的目的不仅仅是调通整个功能需求。调通功能是最基本的......
  • day01--Java基础
    变量常量作用域变量变量就是可以变化的量。--》通过变量操作内存中的数据JAVA是强类型语言,每个变量就必须声明类型确定。JAVA变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。typevarName[=value][{,varName[=value]}];//数据类型变量名=值;可以......
  • Java 方法引用
    目录定义使用条件使用方式匿名类lambda表达式::引用已有方法总结定义将方法作为参数传递即为方法引用。以@FunctionalInterface修饰的接口其中只能有一个抽象方法。这个抽象方法的形参和返回值便是对所引用方法的约束。使用条件引用方法的返回值类型和形参需要与函数式接......
  • 通过Java实现文件断点续传功能
    用户上传大文件,网络差点的需要历时数小时,万一线路中断,不具备断点续传的服务器就只能从头重传,而断点续传就是,允许用户从上传断线的地方继续传送,这样大大减少了用户的烦恼。本文将用Java语言实现断点续传,需要的可以参考一下什么是断点续传用户上传大文件,网络差点的需要历时数小......
  • 用 Java 徒手写一个抽奖系统,拿去用吧
    1、概述项目开发中经常会有抽奖这样的营销活动的需求,例如:积分大转盘、刮刮乐、老虎机等等多种形式,其实后台的实现方法是一样的,本文介绍一种常用的抽奖实现方法。整个抽奖过程包括以下几个方面:奖品奖品池抽奖算法奖品限制奖品发放2、奖品奖品包括奖品、奖品概率和限制、奖品记录。奖......
  • Java常用类,这一次帮你总结好
    常用类概述:内部类Object类包装类数学类时间类字符串StringBuilder和StringBufferDecimalFormat-   一、内部类  -概念:在一个类内部再定义一个完整的类。一般情况下类与类之间是相互独立的,内部类的意思就是打破这种独立思想,让一个类成为另一个类的内部信息,和成员变量、成......
  • JAVA
    1.JVM相关对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面......
  • 几个 Java 性能调优技巧,YYDS
    大多数开发者认为性能优化是一个复杂的话题,它需要大量的工作经验和相关知识理论。好吧,这也不完全错。优化一个应用做到性能最优化可能不是件容易的任务,但是这并不意味着你没有相关的知识就什么也做不了。这里有一些易于遵循的建议和最佳实践可以帮助你创建一个性能良好的应用程序。......