本帖最后由 OMG 于 2012-3-21 00:13 编辑
两者的本质区别是
1,设计思路不同:
A,为了方便,直接静态建立对象,并提供静态方法直接获取该对象;饿汉式
B,为了节省内存,等到其他对象需要是再建立实例对象,也是只是声明一个空对象,在对外提 供获取对象的方法中,进行判断对象是否为空,为空就创建对象;懒汉式
2,应用优势不同:
A,饿汉式在建立对象方面效率高,这对运行效率的提高有帮助;
B,懒汉式在内存节约上有优势,因为是用的时候才建立对象占内存,但是有判断对象是否为空和建立对象两个独立语句,为多线程的安全隐患创造了条件;
总结:因为需求不同,所以会分类,但通常情况下,我们会使用饿汉式,因为简单,快,没有重复判断过程;
|