zoukankan      html  css  js  c++  java
  • 设计模式----单例模式

    单例:

    保证一个类在内存中只能有一个对象。

    思路:

    1)如果其他程序能够随意用 new 创建该类对象,那么就无法控制个数。因此,不让其他程序用 new 创建该类的对象。

    2)既然不让其他程序 new 该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。

    3)该类将创建的对象对外(整个系统)提供,让其他程序获取并使用。

    饿汉式:

    一上来我就把对象给你 new 好了,你来了直接就可以拿去“吃”了

     

    懒汉式

    一开始懒得创建对象,你来找我,我在给你创建一个对象(单例的延迟加载指的就是懒汉式)


    懒汉式有一个缺点,就是在多线程中使用的时候,可能会创建多个实例对象,比如,线程1来调用 getInstance() 方法,判断了 s==null,然后线程1由于未知的原因阻塞了,线程2再来调用 getInstance() 方法,判断 s==null ,线程2就创建了一个对象,这时候线程1又运行了,那么线程1就会创建一个对象~这样就会造成多个对象~

    懒汉式的线程优化——加一个锁

    饿汉式和懒汉式的区别:

    1)饿汉式是空间换时间,懒汉式是时间换空间。

    2)在多线程访问的时候,懒汉式可能会创建多个对象,而饿汉式不会。

  • 相关阅读:
    HTTP
    nginx反向代理和负载均衡
    keepalive
    lnmp
    DNS
    jumpserver跳板机
    博客已搬家到CSDN
    JAVA中关于上传图片到数据库和从数据库取出显示图片的问题
    checkbox的标签和全选中问题
    SOCKET
  • 原文地址:https://www.cnblogs.com/daijiabao/p/11206981.html
Copyright © 2011-2022 走看看