单例测试模式中【饿汉式】与【懒汉式】的区别

news/2024/7/2 6:32:36
package day25.thread;/**
/*** @author Mr Chen* @create 2018-10-09 18:37* 单例测试模式:保证类在内存中只有一个对象*/
public class Dome01 {public static void main(String[] args){Singleton s1 = Singleton.s;                      //成员变量被私有,不能用类名.调用Singleton s2 = Singleton.s;System.out.println(s1==s2);//        Singleton s1 = Singleton.getS();
//        Singleton s2 = Singleton.getS();
//
//        System.out.println(s1==s2);}
}
/*
//饿汉式
class Singleton{//1、私有构造方法,其他类不能访问该构造方法private Singleton(){}//2、创建本类对象
//    public Singleton s = new Singleton();虽说私有了,别的不能访问,但是自己还是可以访问的,这里创建的s,是成员变量,必须要用成员变量调用它。private static Singleton s = new Singleton();//但是这里没有对象,只能用类名点对象调用//就是说如果是非静态的成员变量,只能用对象点。如果是静态成员变量,可以用类名.调用//3、对外提供公共的访问方法public static Singleton getS(){return s;}
}*///懒汉式/*
class Singleton{//1、私有构造方法,其他类不能访问该构造方法private Singleton(){}//2、声明一个引用
//    public Singleton s = new Singleton();虽说私有了,别的不能访问,但是自己还是可以访问的,这里创建的s,是成员变量,必须要用成员变量调用它。private static Singleton s;//但是这里没有对象,只能用类名点对象调用//就是说如果是非静态的成员变量,只能用对象点。如果是静态成员变量,可以用类名.调用//3、对外提供公共的访问方法public static Singleton getS(){//线程1等待,线程2访问if (s==null){s=new Singleton();}return s;}
}*/class Singleton{//1、私有构造方法,其他类不能访问该构造方法private Singleton(){}//2、声明一个引用public static final Singleton s =new Singleton();//但是这里没有对象,只能用类名点对象调用}/*
饿汉式与懒汉式的区别
1、饿汉式:用空间换来了时间;懒汉式:用时间换空间(不推荐)
2、在多线程访问时,饿汉式不会创建多个对象,懒汉式有可能会创建多个对象*/

  

转载于:https://www.cnblogs.com/sunyubin/p/9764321.html


http://lihuaxi.xjx100.cn/news/236103.html

相关文章

Python基础10-函数基础

目录 函数的定义 函数的返回值 函数的参数 参数的传递 参数的默认值 可变长参数 全局变量与局部变量 函数嵌套定义 风湿理论——函数即变量 函数的定义 定义函数的关键字def。函数名,本例函数名是test。小括号里面是参数。冒号后缩进的代码块是函数内容。…

电脑录音软件哪个好,怎么用电脑录音

如今科技迅速发展,不仅唱歌的时候喜欢录音,就连追剧看电视都喜欢把一些经典或者搞笑的音频录制下来,很多喜剧给我们的休闲时光带来了欢声笑语,碰到经典的对话或者旁白总想录制下来,那电脑录音软件哪个好,怎…

Python基础11-函数式编程与内置函数

目录 函数即变量 lambda关键字定义匿名函数 高阶函数 内置函数map 内置函数filter 内置函数reduce 内置函数看文档 函数即变量 书接上回,Python里面,函数就是变量,可以被当成普通变量一样作为返回值,调用。 def foo():pr…

排序学习之---快速排序

一、前言 快速排序是一种交换排序,它由C. A. R. Hoare在1962年提出。 二、算法思想 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。 然后再按此方法对这两部…

vue问题

问题一:我在打包完成后,打开index.html文件发现地址并没有携带路由。去config文件夹下的index.js中寻找问题。index.js中的build命令的配置有一个属性叫assetsPublicPath,它的值为‘/’。意思是根目录,这时会从index.html所在的硬…

填报表中也可以添加 html 事件

在实际的项目开发中,填报表的应用十分广泛。 多数情况下,填报表会作为整个项目的一部分配合需求灵活使用,但有时也会受大项目环境的影响,产生一些特别的要求。比如,通常报表单元格的数据类型大多是文本,有时…

Python基础12-常用的内置函数

abs 取绝对值,数学上的绝对值 print(abs(-1)) all 接收一个可迭代参数。如果里面有一个False的元素,那么返回值就是False,否则返回True,类似逻辑“与”。如果可迭代参数本身为空,那么返回True。需要记住什么是Fals…

百度DisConf分布式配置框架源码试读(一)HttpClient 长连接

Spring Cloud Config配置中心我在学习Spring Cloud Config配置中心时理解了它体系下的配置中心的强大。实现了配置的远程管理、微服务的配置更新。Spring Cloud Config配置中心体系还是有其不足的地方。虽然它实现了配置和服务的分离。但是做不到实时的更新。需要手动触发POST …