java每日一题:static与final的区别

static和final在Java中都是用于修饰类、方法、变量等的修饰符,但它们各自有不同的作用和含义。以下是关于static与final修饰后的主要区别:

一、static修饰符

含义:

static是静态修饰符,表示所修饰的成员(变量、方法、代码块)属于类级别,而非实例级别。

作用:

静态变量:static修饰的变量是静态变量,也称为类变量。无论创建多少个类的实例,静态变量都只有一份拷贝,它们存储在JVM的方法区中,随着类的加载而加载,随着类的消失而消失。
静态方法:static修饰的方法是静态方法,可以通过类名直接调用,无需创建类的实例。静态方法只能访问静态成员(静态变量和静态方法),不能访问非静态成员(实例变量和实例方法)。
静态代码块:static修饰的代码块是静态代码块,它在类加载时执行一次,常用于初始化静态变量或执行一些只需要执行一次的代码。

访问方式:

静态成员可以通过类名直接访问,也可以通过对象访问,但推荐使用类名访问,以体现其类级别的特性。

二、final修饰符

含义:

final表示不可改变的最终形态,用于修饰类、方法、变量等。

作用:

final修饰类:表示该类不能被继承,即不能有子类。
final修饰方法:表示该方法不能被重写,子类继承该方法时只能使用,不能覆盖(重写)。
final修饰变量:表示该变量的值不可改变。对于基本数据类型,final修饰的变量就是常量,只能赋值一次;对于引用类型,final修饰的变量所引用的对象不能改变,但对象的内容可以改变。

使用注意事项:

final修饰的局部变量必须在使用之前赋值一次才可以使用。
final修饰的成员变量在声明时没有赋值的叫做“空白final变量”,必须在构造方法或静态代码块中初始化。

归纳:

static修饰的成员属于类级别,随着类的加载而加载,可以通过类名直接访问,主要用于实现共享数据和工具方法等。
final修饰的成员表示不可改变,用于确保类、方法、变量的最终性,避免被继承、重写或修改。

static和final在Java中各自扮演着不同的角色,可以根据具体需求选择使用。同时,它们也可以组合使用,如static final修饰的变量表示一旦给值就不可修改,且可以通过类名直接访问。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值