如银行余额等系统,不允许同时存在多个对象。
直接上代码!!!!!!
public class Main {
public static int i=0;
public static void main(String[] args) {
Bank1 ban1k=Bank1.getBankOperator();//饿式加载获取银行1对象
Bank2 bank2=Bank2.getBankOperator();//懒式加载获取银行1对象
}
}
/**
*饿式加载
* 优点:线程安全
* 缺点:占用资源,对象一直存在
*/
class Bank1{
//私有化构造器,以至于不能类外直接创建对象
private Bank1(){}
private static Bank1 bank=new Bank1();
public static Bank1 getBankOperator(){
return bank;
}
}
/**
* 懒式加载
* 优点:使用在创建,不占用资源
* 缺点:线程不安全,需要 synchronized 进行线程控制
*/
class Bank2 {
//私有化构造器,以至于不能类外直接创建对象
private Bank2() {
}
private static Bank2 bank = null;//只需要声明,不需要 new
public static Bank2 getBankOperator() {
if (null == bank) {
synchronized (Bank2.class) {
if (null == bank) {
bank = new Bank2();
}
}
}
return bank;
}
}