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;
  }
}

单例模式的作用

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 四旋翼无人机飞行器基本知识(四旋翼无人机结构和原理+四轴飞行diy全套入门教程)

    第一篇《四旋翼飞行器结构和原理》第二篇《四旋翼飞行diy全套入门教程》四旋翼飞行器结构和原理1.结构形式旋翼对称分布在机体的前后、左右四个方向,四个旋翼处于同一高度平面,且四个旋翼的结构和半径都相同,四个电机对称的安装在飞行器的支架端,支架中间空间安放飞行控制计算机和外部设备。结构形式如图1.1所示。.工作原理四旋翼飞行器通过调节四个电机转速来改变旋翼转速,实现升力的变化,从而…

    2022年4月5日
    130
  • 解决Pycharm下导入TensorFlow失败的问题[通俗易懂]

    解决Pycharm下导入TensorFlow失败的问题[通俗易懂]一般情况下通过:File—Settings—Project:工程名字—ProjectInterpreter—右上角加号–上面窗口输入Tensorflow—左下角的InstallPackage就可以成功导入。如果导入失败,可能是你的pip版本不够用了,按照上述方法,先把pip更新一下,在去导入TensorFlow可以了。…

    2022年8月26日
    5
  • vc++连接sql数据库_vscode怎么连接数据库

    vc++连接sql数据库_vscode怎么连接数据库vc连接mysql数据库的方法:首先打开VC6;然后在中间列表框中添加本地安装MySQL的include目录路径;接着选中“Libraryfiles”并添加MySQL的Lib目录路径;最后进行编程测试即可。一、MySQL的安装Mysql的安装去官网下载就可以。。。最新的是5.7版本。。二、VC6.0的设置(1)打开VC6.中选0工具栏Tools菜单下的Options选项,在Directorie…

    2022年8月12日
    5
  • IntelliJ idea自定义模板Live Templates[通俗易懂]

    IntelliJ idea自定义模板Live Templates[通俗易懂]1、点击File–>Setting(Ctrl+Alt+S)–>Live Template,点击右侧的+号,选择Template Group2、输入MyGroup(也可以输入自定义的名称。我写的是My),然后点击OK3、选中My之后,再次点击右侧的+号,选择Live Template下图是 正确是 public static void main(String[] args)   粗心…

    2022年6月13日
    55
  • bootstrap-fileinput文件上传&后台接收处理

    bootstrap-fileinput文件上传&后台接收处理使用bootstrap-fileinput进行文件上传,bootstrap提供了吩咐的API属性、方法、事件;控制文件上传每一个环境,提供各个部分的`class`。Java上传图片处理以及nodeJS上传文件处理。

    2022年6月7日
    53
  • 截取一段电波,一不小心全变成了泡泡。你能够解密吗? “oooo0。000。ooo。o000。0oooo。0o。0o00。00o。00ooo。o00o。0000o。0oo。0oo。oo000。00oo。「建议收藏」

    截取一段电波,一不小心全变成了泡泡。你能够解密吗? “oooo0。000。ooo。o000。0oooo。0o。0o00。00o。00ooo。o00o。0000o。0oo。0oo。oo000。00oo。「建议收藏」看上面的符号像是我们遇到的莫斯电码,但是我们怎么把它转化为莫斯电码呢,仔细观察的o代表的是"."、0代表的是"-"、。代表的是"",所以我们可以写一个脚本将上面的符号转化为莫斯电码#特殊的莫斯电码importre#正则表达式s="oooo0。000。ooo。o000。0oooo。0o。0o00。00o。00ooo。"\"o00o。0000o。0oo。0oo。oo000…

    2022年6月24日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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