单例类单例模式

为什么要写单例类了?
因为我们把构造器写成public进行修饰,其可以在任何条件下创建对象,但是在某些特殊情况下,对象只要创建一次就OK了,可如果我们对其没有约束,那么有些程序员就会想创建多少对象就创建多少对象,这样反而对其系统的性能造成了影响,JVM就会多次创建对象和销毁对象,就会对系统资源造成很大的浪费,这就是为什么要有到单例模式
注意:我说的这个单例类只是单例模式的实现方法之一
当然了,要想实现这个就要做到:
1.对构造方法私有化
2.在其类中写个方法来对构造方法进行操作,其方法特别要注意,因为我们的本质是提供个方法供外界操控,所以必须是public,还有就是因为那个时候,对象还没有创建了,多以必须要用static,要用类进行调用
3.那个还有类必须要缓存那个类的创建的对象,否则不知道其到底有没有创建对象,也就不能保证其只创建一个对象了,所以必须创建一个变量对其进行保存,因为这个变量要在那个操控创建对象的方法中使用,不过那时没有对象,所以必须要用static,同时为了不让外界进行访问,所以必须就用private进项修饰
代码如下:

ckage com.fan.danli;

public class Singleton {
    private   static    Singleton  instance;
    private   Singleton(){}
    public  static synchronized Singleton  getInstance(){
        if (instance==null){
            instance=new Singleton();
        }
        return     instance;
    }
}
package com.fan.danli;

public class SingletonTest {
    public static void main(String[] args) {
        Singleton instance = Singleton.getInstance();
        Singleton instance1 = Singleton.getInstance();
        System.out.println(instance);
        System.out.println(instance1);
        System.out.println(instance==instance1);
    }
}

运行结果:

com.fan.danli.Singleton@1b6d3586
com.fan.danli.Singleton@1b6d3586
true

注意:
在那个singleton类中,对那个操控创建对象的那个方法getInstance,对其进行synchronized对其进行线程的上锁,对于线程上锁,如何理解了?

其实线程上锁,举个例子吧
比如你在坐火车,火车上有很多人,你喝水喝多了,突然想上厕所了,厕所门开着了,你就去上了,你把厕所门锁住了,别人就上不成了,只有你上完了,别人才可以上厕所
其实在这个例子中,你就是个线程厕所就是系统的内存资源,那个线程上锁就是你这个线程,一直在占用资源,别的线程都用不成了这个厕所,只有你用完了,别人才可以用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值