本文共 674 字,大约阅读时间需要 2 分钟。
<p>饿汉式:<br> public class Singleton{<br> private static Singleton singleton = new Singleton ();<br> private Singleton (){}<br> public Singleton getInstance(){return singletion;}<br> } <br><br> 懒汉式:<br> public class Singleton{<br> private static Singleton singleton = null;</p> <p> private Singleton (){}<br> public static synchronized synchronized getInstance(){<br> if(singleton==null){<br> singleton = new Singleton();<br> }<br> return singleton;<br> }<br> } <br><br> 比较:<br> 饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变<br> 懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的<br> 推荐使用第一种 .<br>从实现方式来讲他们最大的区别就是懒汉式是延时加载,<br>他是在需要的时候才创建对象,而饿汉式在虚拟机启动的时候就会创建,<br>使用的场合根据具体环境和个人习惯吧.</p>转载地址:http://dcaji.baihongyu.com/