单
例模式中的
饿汉
式和
懒汉
式
http://topic.csdn.net/u/20071111/14/d9cbf766-765a-4315-a49f-be7888d1308b.html
发
表于
:
2007-11-11 14:18:56
楼主
单
例模式中,
饿汉
式和
懒汉
式有什
么
区
别
?各适合用在哪里?
为
什
么说
推荐用
饿汉
模式
?
|
发
表于
:
2007-11-11
15:29:471
楼
得分
:0
饿汉
式
:
public class Singleton{
private static Singleton singleton
= new Singleton ();
private Singleton (){}
public Singleton
getInstance(){return singletion;}
}
懒汉
式
:
public class Singleton{
private static Singleton singleton
= null;
private Singleton (){}
public static synchronized synchronized getInstance(){
if(singleton==null){
singleton = new Singleton();
}
return singleton;
}
}
|
比
较
:
饿汉
式是
线
程安全的
,
在
类创
建的同
时
就已
经创
建好一个静
态
的
对
象供系
统
使用
,
以后不在改
变
懒汉
式如果在
创
建
实
例
对
象
时
不加上
synchronized
则
会
导
致
对对
象的
访问
不是
线
程安全的
推荐使用第一
种
发
表于
:
2007-11-11 18:13:395
楼
得分
:0
1
楼基本上已
经
回答了
问题
.
但是
懒汉
式没有加私有的构造函数
从
实现
方式来
讲
他
们
最大的区
别
就是
懒汉
式是延
时
加
载
,
在需要的
时
候才
创
建
对
象
,
而
饿汉
式在虚
拟
机启
动
的
时
候就会
创
建
,
使用的
场
合根据具体
环
境和个人
习惯
吧
.
|
发
表于
:
2007-11-12 09:40:207
楼
得分
:0
饿汉
式无需
关
注多
线
程
问题
、写法
简单
明了、能用
则
用。但是它是加
载类时创
建
实
例(上面有个朋友写
错
了)、所以如果是一个工厂模式、
缓
存了很多
实
例、那
么
就得考
虑
效率
问题
,因
为这
个
类
一加
载则
把所有
实
例不管用不用一
块创
建。
懒汉
式的
优
点是延
时
加
载
、缺点是
应该
用同
步
(想改
进
的
话现
在
还
是不可能,比如
double-check
)、其
实
也可以不用同
步
、看你的需求了,多
创
建一两个无引用的
废对
象其
实
也没什
么
大不了
。
|
分享到:
相关推荐
Java 单例模式(懒汉式与饿汉式) Java 单例模式是一种常用的软件设计模式,在它的可信结构中只包含一个被实例化单例的特殊类。通过单例设计模式可以把整系统中的一个类只有一个实例。单例设计模式又分为两种方式,...
在这个场景中,我们将探讨如何使用单例模式来创建一个学生管理系统,主要涉及“饿汉式”和“懒汉式”两种实现方式。 **饿汉式单例** 饿汉式单例在类加载时就完成了实例化,因此它是线程安全的。这种方式保证了单例...
总结,Java单例设计模式通过饿汉式和懒汉式实现,饿汉式在类加载时创建实例,适用于不需要延迟加载的情况;懒汉式在首次调用时创建,但在多线程环境下需要额外的同步措施以保证线程安全。在实际应用中,应根据具体...
这种模式在Java中有两种常见的实现方式:饿汉式和懒汉式。 1. 饿汉式单例: 饿汉式单例在类加载时就完成了初始化,因此类加载时就创建了单例对象。这种方式称为预先加载方式,它保证了线程安全,因为对象的创建在类...
在Java中,单例模式通常有两种实现方式:饿汉式和懒汉式。 1. 饿汉式: 饿汉式是在类加载时就完成了初始化,因此它是线程安全的。代码如下: ```java public class Singleton { private static final Singleton ...
实现单例模式主要有两种方式:饿汉式和懒汉式。 ### **饿汉式单例模式** 饿汉式单例模式在类加载时就完成了实例化,因此也称为静态初始化。这种方式保证了线程安全,但可能会造成不必要的资源浪费,因为即使未使用...
在Java中,单例模式有两种常见的实现方式:饿汉式和懒汉式。 1. **饿汉式**: 饿汉式单例在类加载时即创建了实例,因此它是线程安全的。这种方式保证了类加载后就立即初始化单例对象,避免了多线程环境下的同步...
Java 单例设计模式主要分为两种实现方式:饿汉式和懒汉式。这两种方式都是为了确保一个类只有一个实例,并且提供全局访问点。 **饿汉式**: 饿汉式单例在类加载时就完成了实例化,因此是静态常量的方式,确保了线程...
它主要分为两种实现方式:饿汉式(Eager Initialization)和懒汉式(Lazy Initialization)。 ### 1. 饿汉式单例设计模式 饿汉式在类加载时即创建单例对象,因此在类加载阶段就已经完成了初始化。由于类加载是线程...
单例模式有两种实现方式:饿汉式和懒汉式。 饿汉式单例模式 饿汉式单例模式是指在类加载时就创建对象的单例模式。它的优点是线程安全,避免了多线程同时访问对象时的安全隐患。但是,饿汉式单例模式的缺点是可能会...
单例模式有两种常见的实现方式:懒汉式和饿汉式。 ### 懒汉式单例 懒汉式单例,顾名思义,是一种延迟初始化的单例模式,即在第一次调用时才创建实例。这种方式的优点是在需要的时候才创建对象,节省了内存资源;...
在C++中,单例模式的实现通常有两种常见的方式:懒汉式(Lazy Initialization)和饿汉式(Eager Initialization)。 1. 懒汉式单例模式: 懒汉式单例的特点是在第一次使用时才创建实例,即延迟初始化。这种设计的...
在Java中,有多种实现单例模式的方式,这里主要介绍三种常见的实现方式:饿汉式、懒汉式和枚举式。 **饿汉式**: 饿汉式单例在类加载时就完成了实例化,这种方式保证了线程安全,因为实例化过程在类加载阶段就已经...
"QT_C++单例模式懒汉+饿汉.rar"是一个压缩包,包含了关于C++在QT环境下实现单例模式的实例,分为懒汉式和饿汉式两种实现方式。 首先,我们来看一下单例模式的基本原理。单例模式通常用于那些需要频繁实例化然后销毁...
java 单例模式(懒汉式与饿汉式) java 单例模式是一种常用的软件设计模式。在它的可信结构中只包含一个被实例化单例的特别类。通过单例设计模式可以把整系统中的一个类只有一个实例。单例设计模式又分为两种方式,...
这里我们将详细探讨标题中提到的两种单例模式——"懒汉式"(Lazy Initialization)和"饿汉式"(Eager Initialization)。 1. **饿汉式单例模式** 饿汉式单例的特点是类加载时就完成了实例化,确保了线程安全,但...
在描述中还提到了单例模式的两种实现方式:饿汉式和懒汉式。饿汉式在类加载时就完成了对象的初始化,懒汉式则是在第一次调用获取实例的方法时才创建对象。饿汉式简单且线程安全,但可能导致资源浪费;懒汉式节省资源...
在Java中,单例模式有多种实现方式,其中最常用的两种是饿汉式(Eager Initialization)和懒汉式(Lazy Initialization)。本文将深入探讨懒汉式单例模式,以及它与饿汉式的区别。 ### 懒汉式单例模式 懒汉式的...