单例模式里的两种

转载 2016年05月31日 11:05:57
<span style="font-size: 18px;">
</span>
<span style="font-size: 18px;">所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间的不同。
“懒汉式”是在你真正用到的时候才去建这个单例对象:
比如:有个单例对象
public class Singleton{ 
    private Singleton(){}
    private static Singleton singleton = null;  //不建立对象
    public static synchronized Singleton getInstance(){
             if(singleton == null) {        //先判断是否为空                </span><pre id="best-answer-content" class="reply-text mb10" name="code" style="font-size: 14px; white-space: pre-wrap; word-wrap: break-word;"><span style="font-size: 18px;">                 singleton = new Singleton ();  //懒汉式做法 
             }
             return singleton ;
     }
</span>
}
 “饿汉式”是在不管你用的用不上,一开始就建立这个单例对象:比如:有个单例对象
<span style="font-size: 18px;">public class Singleton{ 
    public Singleton(){}
    private static Singleton singleton = new Singleton();  //建立对象
</span><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word;"><span style="font-size: 18px;">    public static Singleton getInstance(){
</span>
 return singleton ;//直接返回单例对象 }}

它有以下几个要素:

  • 私有的构造方法
  • 指向自己实例的私有静态引用
  • 以自己实例为返回值的静态的公有的方法
转自:点击打开链接

                    

Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式

Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方...
  • u010670689
  • u010670689
  • 2017年03月18日 23:46
  • 314

【java并发】传统线程技术中创建线程的两种方式

传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法;二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread。这两种方式...
  • eson_15
  • eson_15
  • 2016年05月21日 17:02
  • 5538

Android中两种Service区别

服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。其它的组件可以绑定到一个服务(Service)上面,通过远程过程调...
  • leewokan
  • leewokan
  • 2016年05月06日 10:45
  • 1563

Android中常用的两种动画写法

在Android中常用的两种动画,一种是补间动画(Tween Animation),另一种是帧动画(Frame Animation)。用一张图片实现的是补间动画;定义给出两个关键帧,通过一些算法将给定...
  • you__are_my_sunshine
  • you__are_my_sunshine
  • 2016年08月03日 23:04
  • 282

vue-router的两种模式的区别

众所周知,vue-router有两种模式,hash模式和history模式,这里来谈谈两者的区别。 hash模式 hash模式背后的原理是onhashchange事件,可以在window对象上监听这个...
  • hanbinbin258
  • hanbinbin258
  • 2017年11月23日 16:32
  • 242

easyui里弹窗的两种表现形式

1、主JSP页面中描绘弹窗  
  • cbjcry
  • cbjcry
  • 2017年04月13日 10:51
  • 54

Java线程的两种创建方式及优劣比较

1、通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。 (2).创建实现Runnable...
  • YJian2008
  • YJian2008
  • 2013年11月26日 21:58
  • 739

多线程实现的两种方式及其区别

继承Threadpublic class Demo2_Thread { public static void main(String[] args) { MyThread mt ...
  • StriverLi
  • StriverLi
  • 2017年02月26日 21:07
  • 1282

Android-Intent两种启动方式

Android-Intent两种启动方式Intent是安卓提供跳转页面的类,那么它有显式的跳转和隐式的跳转,个人认为显式和隐式并没有太大 的区别,所以我就只复习了显式跳转,然而显式的跳转也有两种方式...
  • ACM_TH
  • ACM_TH
  • 2016年03月27日 09:36
  • 1464

SDUT OJ 1124 飞越原野 (三维BFS练习)

三维BFS
  • u013497151
  • u013497151
  • 2014年06月25日 17:25
  • 1250
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式里的两种
举报原因:
原因补充:

(最多只允许输入30个字)