首页 > 编程语言 >Java 关于单例模式(懒汉式与饿汉式的区别)

Java 关于单例模式(懒汉式与饿汉式的区别)

时间:2023-03-12 11:05:53浏览次数:43  
标签:Singleton Java 饿汉 singleton SingletonHungry static 单例 懒汉


                 Java 关于单例模式(懒汉式与饿汉式的区别)

简单说下两个单例模式的不同点

懒汉式:

1.内部对象非final类型

2.线程安全

3.用到特定方法的时候才会实例化对象

饿汉式:

1.内部对象为final类型

2.在调用get方法之前,对象就已经实例化完毕

// 懒汉式
public class Singleton {
// 延迟加载保证多线程安全
Private volatile static Singleton singleton;
private Singleton(){}
public static Singleton getInstance(){
if(singleton == null){
synchronized(Singleton.class){
if(singleton == null){
singleton = new Singleton();
}
}
}
return singleton;
}
}

// 饿汉式
class SingletonHungry{
private final static SingletonHungry singletonHungry = new SingletonHungry();
private SingletonHungry(){}
// 务必使用static声明为类所属方法
public static SingletonHungry getInstance(){
return singletonHungry;
}
}

 

标签:Singleton,Java,饿汉,singleton,SingletonHungry,static,单例,懒汉
From: https://blog.51cto.com/u_13520184/6115605

相关文章

  • Java 一行代码判断String字符串是否为纯符号
                 一行代码判断String字符串是否为纯符号 最近项目中新加的需求我感觉我的构思很好,分享给大家原理:1.将String去除前后空格2.将Str......
  • Java 判断String字符串是否是中文
    判断String字符串是否是中文Stringstring;//需要判断的内容if(string.matches("[\u4E00-\u9FA5]+")){ToastUtils.Toast(Activity_authentication.this,"内容是中文")......
  • Java 自定义提取字符串中的某一段字符
                     自定义String过滤举例:Strings="dsadsada<@#$@#$>啦啦啦123123<&*&*&*>"要去除所有尖括号里的内容得到结果 "dsa......
  • Android与H5(JavaScript)之间的简单交互
    Android响应Js的动作 假设网页端要调用Android原生的方法:showToast();1.做一个盆子接收消息(创建一个工具类,写一个方法(*带注解))publicclassJavaScriptMethod{......
  • java动态代理和CGLIB
    参考:https://www.jianshu.com/p/cbd4c1ad8a75上一篇我们利用jdk的动态代理实现了一个简单的注解处理器,可以自动给一个button添加指定的监听器.但是jdk的动态代理有一个......
  • Java基础四-异常处理/集合框架以及泛型
    异常的处理编写程序时,代码可能会重新啊运行错误或编译错误,为了处理问题可以使用异常机制异常包括错误类型,原因和位置异常的体系结构 如何进行异常处理java异常......
  • Java 分支结构——if-else(一)
    基本语法结构1:单分支条件判断:if格式:if(条件表达式){语句块;}说明:条件表达式必须是布尔表达式(关系表达式或逻辑表达式)或布尔变量。执行流程:首先判断条件表......
  • 单例bean与原型bean的区别
    在使用Spring开发时,Spring提供了五种scope,分别为singleton,prototype,request,session,globalsession。上图为各个scope描述的官方文档截图。Spring在一开始的时候只提供了s......
  • java学习日记20230310-类与对象
    类与对象类:自定义的数据类型:类是抽象的,概念的,代表一类事务,即是数据类型;对象(属性,行为:具体的实例):具体的,实际的,代表一个具体事物,即是实例;类是对象的模版,对象是类的一个个......
  • java 枚举类
    1.枚举概念:一个类中对象是可数的就是枚举2.枚举关键字:enum枚举类名3.枚举的常用方法:获取枚举值 3.1枚举类名称.对象名称3.2枚举类名称.values......