静态单例模式

静态static

    概念:在有一种情况下,就是无论这个类的对象怎么变化,某些特质始终不会变,这类特质我们称之为静态属性。

    静态的只能访问静态,非静态的可以访问静态和非静态

    静态当中是不可以使用this和super

    类中不存在静态的构造

  静态变量:

  使用static关键字来修饰成员变量,该变量就被称为静态变量。

  static关键字只能用来修饰成员变量,不能用来修饰局部变量。

  静态变量被所有实例共享。

  静态内存唯一,和实例没有任何关系,所以可以直接通过“类名.变量名”进行调用

  静态常量:

    被static修饰的常量被称为静态常量

    成员属性如果是常量,则必须赋初值,否则编译不通过,可以通过构造来赋初值

静态方法:

    被static关键字修饰的方法,称为静态方法

    静态方法只能访问静态属性

    静态方法可以使用“类名.方法名”来访问

    在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建对象

静态代码块:

每个静态代码块,只会被执行一次

申明对象的时候,静态代码块并不会被执行,只有类被加载的时候才会

静态代码块可以有多个,顺序执行

2.单例模式

  什么是单例模式?

    为了保证资源不被过多得浪费,提出一种能让整个系统中一个类只能被实例化对象一次,且实例化对象在内存中唯一存在的路,实现这种思路的功能称作单例模式。

  单例模式的特点:

    单例模式内存唯一,资源共享

  代码实现单例模式:

    使用private关键字定义私有化静态属性

    使用private关键字私有化构造方法

    同步静态方法供外部共享。

 //使用static关键字让对象唯一存在
    private static Student stu;

    //私有化构造方法,保证类的外部无法实例化对象
    private Student() {
    }

    /**
     * 给外部提供一个唯一能够获得对象得方法
     * 如果已经构建对象,则不用再继续构建,没有才能重新构建
     * @return
     */
    public synchronized static Student getStu() {
        if(stu == null){
            stu = new Student();
        }
        return stu;
    }
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值