• 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修饰的变量表示一旦给值就不可修改,且可以通过类名直接访问。

  • 相关阅读:
    2022最新SpringCloud面试题附完整答案
    基于大模型的单轮文档问答
    CogView中的Word embeddings (parallel)
    机器学习入门(五)回归问题中的曲线过拟合问题及解决
    MATLAB算法实战应用案例精讲-【智能优化算法】灰狼算法(GWO) (附MATLAB和Python源码)
    Linux系统笔记参考
    【java期末复习题】第6章 接口
    c语言:打印成绩单
    软件项目管理习题——软件生命周期
    react 集成 tailwindcss
  • 原文地址:https://blog.csdn.net/m0_63739234/article/details/139820308