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

    单例的作用优点:之生成单一实例,减少频繁创建性能开销太大。通常用于 某个对象创建需要较多资源,比如读取配置、依赖较多的。通常系统的工具类也会考虑使用。

    单例的实现方式:

     饿汉,   类变量中实例化

    懒汉       getInstance时候实例化,如在方法同步,将会大大影响性能。

    静态内部类   在静态内部类实例化

    枚举    单一实例

    双重检查    一般不考虑使用。

    使用选择:

         对象占用资源少时,枚举好于饿汉

              对象占用资源大时,静态内部类优于懒汉模式

    单例模式破解

    反射可以破解上面几种(不包含枚举式)实现方式!(可以在构造方法中手动
    抛出异常控制)
    反序列化可以破解上面几种((不包含枚举式))实现方式!
    可以通过定义readResolve()防止获得不同对象。
     
    多线程环境下性能测试
    饿汉,静态内部类,枚举 耗时都在20ms到40ms 之间,懒汉式耗时636ms
     
     
    CountDownLatch
    同步辅助类,在完成一组正在其他线程中执行的操作之前,它允个或多个线程一直等待。 • countDown() 当前线程调此方法,则计数减一(建议放在 finally里• await(), 调用此方法会一直阻塞当前线程,直到计时器的值为0
     
  • 相关阅读:
    Oracle
    Oracle11g服务详细介绍及哪些服务是必须开启的?
    数据结构——二叉树树的遍历理论与实现
    MapReduce新版客户端API源码分析
    【编程范式】汇编解释swap方法
    iPhone、iPod和iPad离线固件升级的方法
    Linux备份
    mysql下用户和密码生成管理
    The secret of ROWID
    linux文件权限解说
  • 原文地址:https://www.cnblogs.com/bruce0706/p/10984188.html
Copyright © 2011-2022 走看看