<单例模式的两种方式>

单例模式中两种方式:1,饿汉式;2,懒汉式


一、饿汉式:

就是直接创建对象,形式如下

public class Demo{

//创建一个静态私有对象

private static Demo d = new Demo();

//把构造器私有化

private Demo(){}

/**

 *创建一个单例模式的获取方法

 */

public static Demo getDemo(){

return d;

}

}


二、懒汉式:

创建空对象,只有在对象为空的情况下才创建实例对象

public class Demo{

//创建一个静态私有对象

private static Demo d = null;

//把构造器私有化

private Demo(){}

/**

 *创建一个单例模式的获取方法

 */

public static Demo getDemo(){

//此if判断语句是为了提高效率

if(d==null){

//同步代码块,确定对象唯一性

synchronized (Demo.class) {

//判断对象是否为空,不为空创建单例对象
if(d==null){
d = new Demo();
}
}

}

return d;

}

}

饿汉式和懒汉式的区别:

饿汉式:不用考虑线程安全问题;加载类的时候就开辟空间,用于存储单例静态对象;

懒汉式:有线程安全问题,需要加大代码量;只有调用getDemo()方法时才会创建对象;



感觉还是懒汉式比较好一点,因为只有调用它时,才会创建对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值