java中的单例模式

单例模式定义:

在全局中只有一个class实例,也就是说只有一个这个类的对象

 

实现有两种方式

第一种饿汉式:

public class A {

private A(){}//私有化构造函数

private static a= new A();

Public Static A getA(){

return a;

}

}

解释:在类的初始化的时候,就将这个单例对象创建出来了,保存在静态方法区备用,等到用的时候,采用静态方法直接返回这个创建好的对象,

好处:线程绝对安全,单例永不变。

 

第二种懒汉式:

public class A {

private A(){}//私有化构造函数

Private A ;

public static A getA(){

if(A == null){

 A = new A();

}

return A;

}

}

好处:类在加载的时候不会加载这个对象,而是在第一次调用的时候才去创建这个对象,节省了内存空间。但是线程不安全,多线程情况下,必须将getA方法用同步修饰,保证线程安全。

 

应用场景有:

1、要求生产唯一序列号。 2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。 3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值