java基础

Java单例模式
1.定义:在整个软件系统中,对某个类只能存在一个对象实例,且该类只提供一个取得其对象实例的方法。

2.实现思路:
让类在一个虚拟机中只能产生一个对象,首先将类的构造器的访问权限设置为private,这样就不能在类的外部通过new操作产生类的对象,但在类的内部仍可以产生该类的对象。因为在类的外部开始无法得到类的对象,只能调用该类的静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,指向类内部产生的该类对象的变量也必须定义为静态的

1.饿汉式—及时加载,随着类的创建,类的唯一实例也创建
public class BankTest {
public static void main(String[] args){
Bank b1=Bank.getInstance();
Bank b2=Bank.getInstance();
System.out.println(b1==b2);
}
}

class Bank{
//类构造器私有化
private Bank(){

}
private static Bank instance=new Bank();
public static Bank getInstance(){
    return instance;
}

}

2.懒汉式–需要时在加载,节省内存
public class GirlFriend {
public static void main(String[] args){

}

}

class Girlfriend{
private Girlfriend(){

}
private static  Girlfriend instance=null;
public static Girlfriend getInstance(){
    if(instance==null){
        instance=new Girlfriend();
    }
    return instance;
}

}

对比->

饿汉式:(优点)写法简单,内存较早加载,使用更方便,更快,线程安全;(缺点)内存占用时间长
懒汉式:(优点)需要的时候创建,节省内存空间;
(缺点)线程不安全

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值