对懒汉式和饿汉式的理解

来源:互联网 发布:国考公务员 知乎 编辑:程序博客网 时间:2024/05/16 06:58

</pre>今天查了一下懒汉式和饿汉式的资料,整理如下:<p></p><p><span style="font-size:14px"><span style="white-space:pre"></span>1.这两种方式都是为了保证对象只被创建一次,</span></p><p><span style="font-size:14px"><span style="white-space:pre"></span>2.懒汉式只有在用到对象的时候才创建(第一次使用对象的时候创建),饿汉式是直接创建对象.</span></p><p><span style="font-size:14px"><span style="white-space:pre"></span>3.都没有public的构造方法</span></p><p><span style="font-size:14px"><span style="white-space:pre"></span>4.懒汉式需要多线程解决并发问题</span></p><p><span style="font-size:14px"></span></p><pre name="code" class="java">//饿汉式public class SingletonDemo {        private SingletonDemo (){            }        private  static SingletonDemo singletonDemo = new SingletonDemo();        //获取对象的方法    private static SingletonDemo getInstance(){           return singletonDemo;    }}
<pre name="code" class="java" style="font-size: 14px;">//懒汉式public class SingletonDemo {    private SingletonDemo(){
    }    private volatile static SingletonDemo singletonDemo = null;        //获取对象的方法    private static SingletonDemo getInstance(){        if(singletonDemo == null ){            //同步代码块:不在方法上加锁是处理高并发问题            synchronized (SingletonDemo.class) {                if (singletonDemo == null) {                    singletonDemo = new SingletonDemo();                }            }        }            return singletonDemo;    }}





0 0
原创粉丝点击