单例模式

1.什么是单例模式?

在应用系统中一个类只有一个实例对象存在,而且该实例容易被异界访问。

2.什么时候用单例模式?

希望在系统中某个类只有一个对象存在,即  对用多个程序使用同一个信息对象的时候,就要保证该对象的唯一性。

3.单例模式的好处?

①控制资源的使用,通过线程同步来控制资源的并发访问。

②控制实例产生的数量,达到节约资源的目的。

③作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的情况下,让多个不相干的两个线程或进程实现通讯。

4.举例说明。

①数据库连接池的设计一般采用单例模式。

5.单例模式是否会影响线程安全?

会的,如果有写操作的时候会的,可以设计成同步函数(synchronized)。

6.如何保证对象的唯一性?

①不允许其他程序使用new关键字来创建对象(私有化该类构造方法)。

②在本类创建一个本类实例(new一个对象)。

③对外提供一个方法让其他应用程序可以获取该类对象(定义一个public方法,将本类创建的对象返回)。

7.单例模式的两种形式。

①,饿汉式(一上来就先new一个对象,类一加载,对象就产生了)

public class SingleTon{

private static SingleTon s = new SingleTon();

private SingleTon { }

public static synchronized SingleTon getInstance(){

return s;

}

}

②,懒汉式(类加载进来,不会产生对象,当调用getInstance()方法时,才会创建对象,延迟加载形式)

public class SingleTon{

private static SingleTon s = null;

private SingleTon{ }

public static synchronized SingleTon getInstance(){

if(s==null){

s = new SingleTon();

}

return s;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值