`
vortexchoo
  • 浏览: 64605 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java单例模式小汇总

    博客分类:
  • java
阅读更多

holder :

资源利用高,不调用就不会被实例,反应不快。

public class Singleton{

     private static class SingletonHolder{

      public final static Singleton instance = new Singleton();

}

     public static Singleton getInstance(){

      return SingletonHolder.instance;

}

private Singleton(){}

}

-----------------------------------------------------------------------------------------

如果有请求需要Singleton则会判断如果当前没有创建Singleton则重新创建,如果已有则直接返回已创建的Singleton。资源利用较为不错,不调用就不会实例。既然如此第一次调用的时候加载肯定会需要一段时间,反应不是很快。

classical :

public class Singleton{

    private static Singleton instance = null;

    private Singleton (){}

    public static Singleton getInstance(){

     if(instance==null){

     instance = new Singleton();

}

    return instance;

}

}

------------------------------------------------------------------------------------------

直接已静态形式创建Singleton,无论是否有需求都在类加载时创建,被调用时反应会很快,线程安全。如果永远都没被调用就悲剧了,这个对资源的利用太浪费了。

public class Singleton{

   private Singleton(){}

   private final static Singleton instance = new Singleton();

   public static Singleton getInstance(){

    returtn instance;

}

}

-------------------------------------------------------------------------------------------------------------

双检测:

不掉用getInstance方法就不会被实例,第一次加载反应慢。

public class Singleton(){

    private staitc Singleton instance = null;

    private Singleton(){}

   

    public static Singleton getInstance(){

    if(instance==null){

      synchronized(Singleton.class){

     if(instance==null){

     instance = new Singleton();

}

}

}

returnn instance;

}

}

分享到:
评论

相关推荐

    深入浅出java设计模式(高清中文PDF)

    单例模式 3.建造模式 4.原型模式 5.适配器模式 6.桥梁模式 7.组合模式 8.装饰模式 9.门面模式 10.享元模式 11.代理模式 12.责任链模式 13.命令模式 14.解释器模式 15.迭代器模式 16.调停者模式 17....

    Java常用设计模式例子

    以JAVA为例,汇总了十几种常用的设计模式,包括了:单例模式、工厂模式、建造者模式、适配器模式、装饰器模式、外观模式、命令模式、观察者模式、状态模式、策略模式、模板方法模式等。仅供学习使用。 相关文章请看...

    Java 23种设计模式全归纳

    - **单例模式(Singleton Pattern)**:确保一个类只有一个实例,并提供一个全局访问点。 - **示例**:数据库连接池 - **工厂方法模式(Factory Method Pattern)**:定义一个创建对象的接口,让子类决定实例化哪...

    Java基础知识点总结.docx

    单例设计模式:★★★★★ 156 工厂模式★★★★★ 159 抽象工厂模式★★★★★ 163 建造者模式 170 原型模式 177 适配器模式 182 桥接模式 188 过滤器模式 192 组合模式 193 装饰器模式★★★★★ 196 外观模式 201...

    java面试题库2021.pdf

    目录 一、 JavaSE 部分 1、 Java 基础 ①Java 基础部分(基本语法, Java 特性等) ②关键字 ③面向对象 ④集合部分 2、 Java 高级知识 ①线程 ②锁 ...三、 Java web 开发核心...4、 所有模式汇总 十、 场景题 十一、 UML

    java社招二面面试题有哪些

    什么是单例模式 @RequestMapping有什么参数 ConcurrentHashMap怎么实现的,1.7和1.8的区别 执着,怎么解决一个问题 线程的五种状态 sleep和wait的区别 collection和map的区别 集合哪些是排序的 List的Conllections....

    JAVA面向对象详细资料

    32 单例模式 47 32.1 饿汉模式 47 32.2 懒汉模式 47 33 接口(interface) 48 33.1 如何创建一个接口。 48 33.2 如何使用接口 48 33.3 如何使用类实现一个接口 49 33.4 接口的细节 49 34 接口的应用(面向对象分析)...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例088 单例模式的应用 109 实例089 祖先的止痒药方 110 实例090 统计图书的销售量 111 实例091 汉诺塔问题求解 112 实例092 不能重写的方法 113 5.3 包装类的使用 114 实例093 将字符串转换成整数 114 实例094 ...

    java8集合源码分析-Android-open-project:Android开源项目汇总

    java8 集合源码分析 Android 优秀开源项目汇总 事件总线(订阅者模式) 通过发布/订阅事件解耦事件发送和接受,从而简化应用程序之间的通信 1.EventBus 作者 greenrobot 项目地址: 原理剖析文档: 特点: (1) 支持在...

    项目汇总2

    项目汇总2

    项目汇总1

    不过一般而言,我们使用ajax做动静分离都是都是从服务端请求一个html片段,到了浏览器后,使用dom技术将这个片段整合到页面里.总结:1、使用Thymelea

Global site tag (gtag.js) - Google Analytics