public class LazySingleton {//缺点,多线程并发的时候会失效,getmInstance不同步,例子:一个线程在创建mInstance时,还未创建完成,另一个线程访问mInstance此时还是为空,又创建了一次

private static LazySingleton mInstance;

private LazySingleton(){

}

public static LazySingleton getmInstance(){

if(mInstance == null){

mInstance = new LazySingleton();

}

return mInstance;

}

}

懒汉式进行了延迟加载,在调用getmIntance方法时才会去判断mInstance是否为空,如果为空,再去进行实例的创建。。但是在多线程操作的时候,可能会创建多个mInstance实例,比如在以下情况下:一个线程在创建mInstance实例时,mInstance实例还未创建完成,但是另外一个线程会去访问mInstance发现此时mInstance还是为空,这个时候该线程又会去再次创建一个mInstance实例,最后会有多个mInstance实例被创建,导致资源的浪费。

更多免费技术资料可关注:annalin1203

java设计模式懒汉_JAVA设计模式之懒汉式相关推荐

  1. java单例设计模式懒汉_Java设计模式之单例设计模式(懒汉、饿汉)

    [toc] Java设计模式之单例设计模式(懒汉.饿汉) 相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试 ...

  2. java设计模式懒汉_java设计模式-懒汉设计模式

    一.理论 类加载时,不进行实例化,调用时才进行类的实例化. 二.代码实现 public class LazyManPattern { //1.构造方法私有化 private LazyManPatter ...

  3. java 设计模式 示例_Java设计模式–示例教程

    java 设计模式 示例 Design Patterns are very popular among software developers. A design pattern is a well- ...

  4. java单例设计模式双重_Java 设计模式 ——单例模式(饿汉,懒汉,双重锁,静态内部类)...

    设计模式: 是在大量的实践中总结和理论化之后优选的代码结构,编程风格,以及解决问题的思考方式.设计模式免去我们自己再思考和摸索.就像是经典的棋谱,不同的棋局,我们用不同的棋谱 俗称"套路&q ...

  5. java外观设计修改_Java设计模式之外观模式和装饰器模式的设计(精选)

    前言 本篇来学习下结构型模式的外观模式和装饰器模式. 外观模式 简介 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接 ...

  6. java 反射模式_java 设计模式——反射机制的应用

    Java反射机制是指:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言 ...

  7. java设计模式教程_Java设计模式教程

    java设计模式教程 课程大纲 架构和计算机科学中的设计模式是记录特定专业领域中设计问题的解决方案的正式方法. 这个想法是由建筑师Christopher Alexander在建筑领域引入的,并已被修改 ...

  8. java 对象工厂_Java设计模式之--工厂方式

    在分析工厂模式之前,我们先看看普通模式下的Java三层结构. Controller(表现层)-Service(业务层)-Dao(持久层.数据库连接层),基于此三层结构完成JavaWeb相关业务. 假设 ...

  9. java 设计模式原则_Java设计模式的七大原则

    设计原则名称 定  义 使用频率 单一职责原则(Single Responsibility Principle, SRP) 一个类只负责一个功能领域中的相应职责. ★★★★☆ 开闭原则(Open-Cl ...

最新文章

  1. 【数据平台】sklearn库特征工程之数据预处理
  2. python对文件中的关键词查找替换,实现自动获取配置
  3. what are the added values for the research?
  4. python模块的导入的两种方式区别详解
  5. 最常用计算机机箱,电脑机箱的常用材质是什么?
  6. (35)System Verilog类静态变量详解
  7. mysql打错了怎么办_数据库出错了怎么办?
  8. Spring boot常见标签、注解解释
  9. 编译原理教程_3 词法分析
  10. jquery扩展与插件
  11. PHP报错:Malformed UTF-8 characters, possibly incorrectly encoded
  12. LTE TDD和FDD介绍
  13. HTML实现win10桌面,利用js实现仿win10桌面弹出窗口提示代码
  14. 转行学软件测试,月薪5k到30k,给IT赶路人一些个人建议...
  15. AutoCad 修改多段线
  16. Linux aarch64交叉编译之 Google filament引擎
  17. 关于大学生课余时间分配利用的调查报告
  18. 计算机组成的分析指令的op,计算机组成原理-第12讲(第4章).ppt
  19. 【MySQL从入门到精通】【高级篇】(二十六)建了索引就能用么?我看未必。来看看几种索引失效的情况吧
  20. 专科生要怎么做才能进入阿里巴巴、百度、腾讯这样的公司?

热门文章

  1. TCP/IP网络协议栈:ARP协议详解
  2. OpenStack Glance(镜像服务)基础架构:Basic architecture
  3. Linux下实现多线程异步管道
  4. ioctl(), ioctl_socket()
  5. ibm邮件怎么撤回_怎么申请邮箱?163邮箱如何注册使用?
  6. python美化输出模块_美化输出结果之Python模块PrettyTable介绍
  7. linux系统kvm安装,快速搭建KVM及安装linux系统
  8. 开发无法复现是什么意思_我与你无法执迷不悟什么歌-我与你无法执迷不悟歌曲意思、出处、含义介绍...
  9. mybatis # 和$ 获取接收参数值的区别
  10. 域控计算机策略转换成用户策略,windows组策略实验-本地组策略和域控组策略