Java复习四:static关键字+代码块+final关键字

static关键字

类只是描述对象的属性和行为 ,并没有产生实际的对象,只有使用关键字New的时系统才会分配内存给对象

创建类时,有些特定的数据在内存中只有一份,用static关键字定义

static: 静态的

static可以用来修饰属性,方法,代码块,内部类

属性:静态属性(类属性)

被static关键字修饰的属性内存中只有一份,一个对象中修改了static,其他对象中的static也会变化

​ 静态变量随着类的加载而加载

​ 静态变量的加载早于对象的加载

​ 可以通过class.调用静态变量

​ 存在于方法中的静态域中

方法:静态方法

静态方法中只能使用静态属性和静态方法,不可以使用super和this关键字

非静态方法中可以使用静态属性和静态方法,也可以使用非静态属性和方法

操作静态属性的方法,通常使用静态方法

工具类通常使用静态方法

单例设计模式:整个系统中只存在一个对象,将构造方法的访问权限设置为private,使得外部无法创建对象,在内部创建一个静态对象,并通过一个静态方法使得外部得到这个静态对象

饿汉式和懒汉式:

* 饿汉式单例设计模式
* 步骤
* 1 创建private权限的构造函数
* 2 声明一个静态的对象变量,类内部可以调用私有的构造函数
* 3 创建一个静态的获取静态对象的方法
* 
public class Bank {
    private Bank(){

    }

    private static Bank Instance=new Bank();

    public static Bank getBank(){
        return Instance;
    }

    public static void main(String[] args) {
        Bank bank1=Bank.getBank();
        Bank bank2=Bank.getBank();
        System.out.println(bank1==bank2);
    }

}
* 懒汉式单例设计模式
* 步骤
* 1 设计一个私有的构造函数
* 2 设置一个静态的私有的对象属性并设为空
* 3 设置一个静态的方法,当对象为空时,调用构造函数创建对象,不为空则直接返回对象
public class BankTest {
}
class Bank{
    private Bank(){

    }

    private static Bank instance=null;

    public static  synchronized Bank getInstance(){

        if(instance==null){
            synchronized (Bank.class){
                //内部嵌套有必要,不然进来的多个线程会重复造
                if (instance==null) instance=new Bank();
            }
        }
        return instance;
    }

}

饿汉式:坏处,对象加载时间过长

​ 好处,饿汉式时线程安全的

懒汉式:好处 延迟对象的创建

单例设计模式:由于单例模式只生成一个实例,减少了性能的开销。:java.lang.Runtime

常见单例设计模式应用模式:

1 网站的计数器

2 应用程序的日志应用

3 数据库连接池

4 application

代码块

代码块的作用:初始化类,对象

代码块如果又修饰的话,只能用static

静态代码块:

​ 代码块内部可以有输出语句

​ 随着类的加载而执行,而且只执行一次

​ 作用:初始化类信息

非静态代码块:

​ 代码块内部可以有输出语句

​ 随着对象的创建而执行

​ 每创建一个对象,就执行一次非静态代码块

​ 作用:可以在创建对象时,对对象等属性进行初始化

总结:对象可以赋值的位置

1 默认初始化

2 显式初始化/5 代码块中赋值 看摆放位置决定执行顺序

3 构造器初始化

4 set方法

执行顺序:静态代码块>动态代码块>构造器

final关键字

final 可以用来修饰类,方法,变量

类:表示该类不能被其他类继承 例如String

方法:表示该类不能被重写

变量 :变量变为常量

给final属性赋值:

* 1 显式初始化
* 2 代码块
* 3 构造器

调用构造器时将为对象分配内存,此时必须要给常量赋值了

final修饰局部变量变为常量,无法对其修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

下坠丷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值