震惊!马云心中的单例设计模式竟是这样子的!!

One: Java单例设计模式


今天就先说Java单列设计模式 ,这一块内容呢,主要是位于学习到JVM虚拟机底层方面的。以下是虚拟机

在虚拟机中,bean一共有两个常见的作用域。一种就是单列的 singleton,另一种就是prototype 原型。虽然这里叫做原型。但是要注意:在作用域里,创建出来的bean默认是单例的!!
那么单例和原型的却别是什么呢?也就是说在Spring里的核心容器中,如果是单列,容器就只会创建一个实例。如果是多例就顾名思义了,容器可以创建多个实例,
而实例又是什么呢 实例就是指:我引用了这个类的对象,这个对象就是实例。
单例就是我引用了多次这个对象,不管引用多少次,都是这个对象,在控制台打印出来的都是一样的地址符,这就是单例。
而多例就是我引用了很多次这个类的对象,每次引用的都是重新创建的新的对象,它们的地址符都不一样。都不是同一个对象。这就是多例。多个对象。

 单例设计模式呢,开发套路中的一种套路。要做到就是保证只有一个实例。 做法如下:
 1、先开发一个类,保证它是单独的类,只能创建出一个实例。
 2、私有化构造方法:创建无参构造方法,将他的访问修饰符设置为private,私有的。
 3、定义一个静态属性,提供静态方法,返回值为唯一的实例。
 4、多次调试静态方法获取这个实例,保证得到的都是同一个。     
 其中有两种单例分为饿汉式和懒汉式。
 饿汉式单例,饿汉式单例就是比喻成一个非常饥饿的人,这个类加载(就是加载一个厨房),
 这个饿汉创建出来之后,不管厨房是谁的,先去给自己做了吃的(创建实例)。也不会管我们是否调方法。他就抢先一步的自己创建了实例。

而懒汉式则很懒,就算你的类开始加载,他也不会动弹。直到你调用了这个方法,他才开始创建,开始工作。
这两个单例比起来,饿汉式相对线程比较安全,懒汉式单例是线程不安全的。。
     所以我们在用懒汉式时,需要加入同步锁。同步锁是加在方法上的,锁住了整个方法,性能比较低。而我们可以用双重同步锁,锁住少量的代码块。提高性能。一样是单例的。    ——ccc 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值