java笔记-----static+单例设计模式

目录

一、static:某些特定的数据在内存空间中只有一份

二、实例变量和静态变量

三、static修饰方法:静态方法

四、开发中的static

五、单例模式


一、static:某些特定的数据在内存空间中只有一份

  1. static可以用来修饰属性、方法、代码块、内部类
  2. 静态变量随着类的加载而加载,早于对象的创建,且在内存中只有一份。
  3. 可以用类名.静态方法来直接调用方法。

二、实例变量和静态变量

  1. 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中非静态属性。当修改其中一个对象的非静态属性时,不会导致其他对象中同样的属性值得修改。
  2. 静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过之后的。

三、static修饰方法:静态方法

  1. 随着类的加载而加载。用类.方法名调用,也可以用对象.方法调用
  2. 静态方法中只能调用静态的方法和属性,不能调用非静态的。非静态的方法中即可以调用静态的方法或属性,也可以调用非静态的属性与方法。
  3. 在static方法中,不能使用this关键字
  4. 关于静态属性和方法的使用可以从类的生命周期的角度去理解

四、开发中的static

  1. 属性为static:属性是可以被多个对象所共享的,不会随着对象的不同而不同。常量也常常声明为static。

        操作静态属性的方法通常设置为static;

        工具类中的方法,习惯上声明为static。如Math、Array、Collection


五、单例模式

  1. 设计模式是在大量的实践中总结和理论化之后优选的代码结构,编程风格以及解决问题的思考方法。设计模式免去我们自己再思考和摸索。类似于“套路”。
  2. 类的单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供了一个取得其对象实例的方法。
  3. 实现:构造方法权限为private,创建对象的方法为static,因为属性也要static
  1. 饿汉模式
class Bank{
	//私有化构造方法
    private Bank(){
    }
    //内部对象的创建
    private static Bank instance = new Bank();
    //提供公共的类方法,返回对象
    public static Bank getInistance(){
    	return instance;
    }
}
  1. 懒汉模式
class Order{
	//私有化类的构造器
    private Order(){
    }
    //声明当前类的对象,未初始化
	private static Order instance = null;
    //声明public、static返回当前类的方法
    public static Order getInstance(){
    	
        if(instance == null){
        	instance = new Order();
        }
        
        
    }
}
  1. 两者得区别

懒汉模式:

        好处:延迟对象的创建

        坏处:目前写法,线程不安全

饿汉模式:

        好处:对象加载时间长

        坏处:线程安全

  1. 单例模式的优点

由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置。产生其他依赖的对象时,则可以通过在应用启动时直接产生一个单例对象,然后用永久驻留内存的方式来解决。

  1. 单例设计模式的应用场景

                网站的计数器

                应用程序的日志应用

                数据库连接池

                项目中读配置文件的类

                Application也是单例模式的典型应用

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想进阿里的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值