java单例模式有什么用_java单例模式代码实现

java单例模式有什么用_java单例模式代码实现Java的单例实现方式经典:懒汉式、饿汉式、双重检测锁关键:私有化构造方法通过方法去获取单例对象懒汉(调用时再去初始化)、饿汉(直接初始化)Demo://饿汉式publicclassDemo1{privatestaticDemo1demo1=newDemo1();privateDemo1(){sout(“初始化”);}publicstaticDemo1getInstance(){returndemo1;}

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Java的单例实现方式

经典:懒汉式、饿汉式、双重检测锁
关键:

  1. 私有化构造方法
  2. 通过方法去获取单例对象
  3. 懒汉(调用时再去初始化)、饿汉(直接初始化)

Demo:

//饿汉式
public class Demo1 { 
   
  private static Demo1 demo1 = new Demo1();
  private Demo1() { 
   
    sout("初始化");
  }
  public static Demo1 getInstance() { 
   
    return demo1;
  }
}

//懒汉式
public class Demo2 { 
   
  private static Demo2 demo2;
  private Demo2() { 
   
    sout("init");
  }
  public static Demo2 getInstance() { 
   
    if(demo2 == null) { 
   
      demo2 = new Demo2();
    }
    return demo2;
  }
}

//双重检测锁
public class Demo3 { 
   
  private static Demo3 demo3;
  private Demo3() { 
   
    sout("init");
  }
  public static Demo3 getInstance() { 
   
    if(demo3 == null) { 
   
      synchronized(Demo3.class) { 
   
        if(demo3 == null) { 
   
          demo3 = new Demo3();
        }
      }
    }
    return demo3;
  }
}

单例模式的作用

  • 保证一个类只有一个实例,并且提供一个访问该全局访问点。
  • 因此可以节约系统资源,当需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能。
  • 避免对共享资源的多重占用。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169701.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java反射机制详解

    Java反射机制详解首先,我们在开始前提出一个问题:1.在运行时,对于一个java类,能否知道属性和方法;能否去调用它的任意方法?答案是肯定的。本节所有目录如下:什么是JAVA的反射机制JDK中提供的ReflectionAPIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建

  • 天翼云IP_天翼网关ip地址

    天翼云IP_天翼网关ip地址在很多应用场景中,需要在云平台中搭建高可用集群,就这需要用到虚拟IP地址功能。今天就来谈一谈虚拟IP地址及它的应用场景。一、高可用集群在谈虚拟IP地址前,我们先了解一下什么叫高可用集群。高可用集群(HighAvailabilityCluster),或者叫故障转移集群(FailoverCluster),它是指通过集群软件,将几台服务器组合为一个集群系统提供服务,这些服务器中同一时间内一般只有一台在提供服务(称之为主节点或者Master节点),其…

    2022年10月20日
  • 机器人控制系统有哪些_abb机器人创建系统

    机器人控制系统有哪些_abb机器人创建系统 一、ROS简介与安装 那么在学习使用ROS之前,首先问一个问题:为什么需要机器人操作系统?机器人操作系统与现有的Linux或Windows操作系统有什么不同呢?大家知道,操作系统的诞生,就是为了提供硬件和软件间的接口,以便程序员编写程序时可以专注于设计算法,而不必关心底层硬件是如何实现的。那么,对于不同的硬件平台,面对不同的功能需求,自然也需要设计不同的操作系统来完成任务。机器…

  • case label does not reduce to_class not loaded

    case label does not reduce to_class not loadedClassCastException出现原因解决办法出现原因抛出以指示代码已尝试将对象强制转换为它不是实例的子类。例如,以下代码生成一个ClassCastException:对象x=新整数(0);System.out.println((String)x);解决办法这种异常我也不知道有什么能够完全解决的办法,但是可以同instanseof来避免例如:Pet宠物类   Dog狗狗类(继承Pet)  Penguin企鹅类(继承Pet)  Dogdog=(Dog)pet

  • vs2008安装失败解决办法「建议收藏」

    vs2008安装失败解决办法「建议收藏」

    由于各种蛋疼原因,卸载了VS2010换08.比较痛恨的是VS的卸载总是卸不干净,这种问题对于微软来说很难吗??
    开始还以为装不上08是因为2010没有卸载干净,结果搜索后发现时office2007的问题。
    代码:[01/13/10,18:55:42] setup.exe: [2] ISetupComponent::Pre/Post/Install() failed in ISetupManager::InternalInstallManager() with H

  • PLSQL连接Oracle数据常见问题ORA-12154: TNS

    PLSQL连接Oracle数据常见问题ORA-12154: TNS相信使用过Oracle数据库的人一定碰到过“ORA-12154:TNS:无法解析指定的连接标识符”错误,我在此做一个小小的总结。     在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,SqlServer不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“ORA-12154:TNS

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号