返回顶部
首页 > 资讯 > 精选 >java中单例模式的写法有哪些
  • 679
分享到

java中单例模式的写法有哪些

2023-06-15 10:06:27 679人浏览 八月长安
摘要

小编给大家分享一下java中单例模式的写法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、单例模式属于创建者模式的一种, 单例模式的目的是使该类只有一个实

小编给大家分享一下java中单例模式的写法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、单例模式

属于创建者模式的一种, 单例模式的目的是使该类只有一个实例,同一个类的不同对象有不同的hashCode()

单例模式是由该类自行创建唯一个向外暴露的全局的对象

二、写法

  • 饿汉式:无线程安全,但是类以加载就会创建实例,浪费资源

  • 懒汉式:存在线程安全,需要加synchroined

  • 内部类:无线程安全(完美方案)

  • 枚举: 线程安全,听说是高效java推荐的写法

三、饿汉式

public class SingleTest{    public static void main(String[] args) {        Single single1 = Single.getInstance();        Single single2 = Single.getInstance();        System.out.println(single1.hashCode());        System.out.println(single2.hashCode());        System.out.println(single1 == single2);    }}class Single {    final static Single INSTANCE = new Single();    public static Single getInstance(){return INSTANCE;}}

java中单例模式的写法有哪些

四、懒汉式

//懒汉式的线程安全的写法又称为双检索懒汉模式public class SingleTest {    public static void main(String[] args) {        for(int i = 0;i < 10; i++){            new Thread(new Runnable() {                @Override                public void run() {                    System.out.println(Single.getInstance().hashCode());                }            }).start();        }    }}class Single{    private static Single instance = null;    Single(){}    public static Single getInstance(){      if (instance == null){          synchronized (Single.class) {              if(instance == null){                  try{                     Thread.sleep(1);                  }catch (Exception e){                     e.printStackTrace();                  }                 instance = new Single();              }          }      }      return instance;    }}

java中单例模式的写法有哪些

五、内部类

public class SingleTest {    public static void main(String[] args) {        Single single1 = Single.getInstance();        Single single2 = Single.getInstance();        System.out.println(single1.hashCode());        System.out.println(single2.hashCode());        System.out.println(single1 == single2);    }}class Single{    private static Single instance;    public static Single getInstance(){        return InnerSingle.INSTANCE;    }    private static class InnerSingle{        private final static Single INSTANCE = new Single();    }}

java中单例模式的写法有哪些

六、枚举

//枚举:完美写法public class SingleTest {    public static void main(String[] args) {        Single single1 = Single.INSTANCE;        Single single2 = Single.INSTANCE;        System.out.println(single1.hashCode());        System.out.println(single2.hashCode());        System.out.println(single1 == single2);    }}enum Single{    INSTANCE;}

java中单例模式的写法有哪些

七、结论

优点:

  • 单例模式可以保证内存里只有一个实例,减少了内存的开销。

  • 避免对资源的多重占用

  • 单例模式设置全局访问点,可以优化和共享资源的访问。

缺点:

  • 没有接口,扩展不了代码,违背了开闭原则

  • 单例模式的功能代码通常写在一个类中,如果功能设计不合理,则很容易违背单一职责原则。

以上是“java中单例模式的写法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: java中单例模式的写法有哪些

本文链接: https://lsjlt.com/news/279587.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中单例模式的写法有哪些
    小编给大家分享一下java中单例模式的写法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、单例模式属于创建者模式的一种, 单例模式的目的是使该类只有一个实...
    99+
    2023-06-15
  • Java单例模式的常见写法有哪些
    这篇文章主要介绍“Java单例模式的常见写法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java单例模式的常见写法有哪些”文章能帮助大家解决问题。1.饿汉模式饿汉模式也叫预加载模式,它是在类...
    99+
    2023-06-30
  • java单例模式有哪些
    java中的单例模式有:1.懒汉式单例;2.饿汉式单例;3.登记式单例;java中的单例模式有以下几种懒汉式单例java中懒汉式单例是指单例类在第一次调用时进行实例化,不存在多线程同步问题,可以避免synchronized所造成的性能问题。...
    99+
    2024-04-02
  • Java中单例模式的七种写法示例
    目录前言1、饿汉式(线程安全)⭐2、懒汉式(线程不安全)⭐ 3、懒汉式(加锁)4、懒汉式(双重校验锁)⭐5、单例模式(静态内部类)6、单例模...
    99+
    2024-04-02
  • java单例模式有哪些优缺点
    Java单例模式的优点:1. 提供了对唯一实例的全局访问,方便了对该实例的控制和管理。2. 避免了重复创建对象,节省了系统资源。3....
    99+
    2023-10-11
    java
  • java中什么是单例模式?有哪些优点?
    一.什么是单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。单例模式就是: 在程序运行期间, 某些类有且最多只有一个实例对象。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对...
    99+
    2016-08-26
    java入门 java 单例模式 优点
  • 在Python中实现单例模式的方法有哪些
    本篇内容主要讲解“在Python中实现单例模式的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Python中实现单例模式的方法有哪些”吧!单例模式(Singleton Pattern...
    99+
    2023-06-16
  • 单例模式的细节有哪些
    这篇文章主要介绍“单例模式的细节有哪些”,在日常操作中,相信很多人在单例模式的细节有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”单例模式的细节有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!从去...
    99+
    2023-06-15
  • Java单例模式的几种常见写法
    目录1.饿汉模式2.懒汉模式3.静态内部类4.枚举总结1.饿汉模式 饿汉模式也叫预加载模式,它是在类加载时直接创建并初始化单例对象,所以它并不存在线程安全的问题。它是依靠 Class...
    99+
    2024-04-02
  • C++中有哪些实现单例模式的方式
    这篇文章将为大家详细讲解有关C++中有哪些实现单例模式的方式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但...
    99+
    2023-06-17
  • Golang中单例模式的实现方式有哪些?
    Golang中单例模式的实现方式有三种:懒汉模式、饿汉模式和双重检查模式。接下来将为您详细介绍这三种实现方式,并提供具体的代码示例。 一、懒汉模式 懒汉模式是指在第一次被调用时才创建单...
    99+
    2024-03-05
    golang 实现 单例 go语言
  • Java单例模式怎么写
    本篇内容主要讲解“Java单例模式怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java单例模式怎么写”吧!这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的...
    99+
    2023-06-19
  • Python实现单例模式的方式有哪些
    这篇“Python实现单例模式的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python实现单例模式的方式有哪些...
    99+
    2023-06-30
  • golang单例模式的实现方式有哪些
    在Go语言中,单例模式可以通过以下几种方式来实现: 懒汉式: 懒汉式是指在第一次使用时才创建实例。在Go语言中,可以使用sync....
    99+
    2024-02-29
    golang
  • c++单例模式的实现方式有哪些
    在C++中,可以通过以下几种方式来实现单例模式: 饿汉式单例模式(Eager Initialization): 在类定义中静态地创...
    99+
    2024-02-29
    c++
  • php中单例模式的应用场景有哪些
    php中单例模式的应用场景有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都...
    99+
    2023-06-06
  • python中单例模式的应用场景有哪些
    本篇文章为大家展示了python中单例模式的应用场景有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语...
    99+
    2023-06-14
  • Golang中单例模式的应用场景有哪些?
    Golang是一种开源的静态类型编程语言,具有高效、强大和简洁的特点。在Golang中,单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。单例模式在很多场...
    99+
    2024-03-05
    场景 单例模式 golang应用
  • Python中实现单例模式的常见方式有哪些
    Python 中实现单例模式的几种常见方式元类(Metaclass):class SingletonType(type): """ 单例元类。用于将普通类转换为单例类。 "&q...
    99+
    2023-05-14
    Python
  • Java中模版方法模式的作用有哪些
    Java中模版方法模式的作用有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算...
    99+
    2023-05-31
    java 模版方法模式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作