static final 的含义和作用

在Java中,static final结合使用具有特定的含义和用途:

static final 的含义和作用

  1. static

    • static修饰符表示该字段或方法属于类本身,而不是类的实例。也就是说,static字段或方法被所有实例共享,而不是每个实例都有自己的副本。
    • static字段或方法在类加载时初始化,并且在整个程序运行期间只有一份拷贝。
  2. final

    • final修饰符表示该字段一旦初始化后,其值不能被改变。对于final字段,这意味着它必须在定义时或构造函数中被初始化,并且之后不能再修改。

staticfinal一起使用时,通常表示一个类级别的常量。这样做的好处是,这个常量的值在整个程序中是共享的,并且在定义后不能被修改。

使用场景

  1. 定义常量

    • static final通常用于定义常量,这些常量在程序运行时不会改变。常量通常用大写字母命名,并用下划线分隔。
  2. 共享数据

    • 由于static字段是类级别的,它们在所有实例之间共享。如果常量是共享的且不会改变,使用static final是很合适的。

示例

1. 定义常量

public class MathConstants {

    public static final double PI = 3.141592653589793;
    public static final int MAX_SIZE = 100;
}

在这个示例中,PIMAX_SIZE是类级别的常量。由于它们是static的,所有实例共享相同的值;由于它们是final的,它们的值在初始化后不能更改。

2. 使用常量

public class Circle {

    public double getCircumference(double radius) {
        return 2 * MathConstants.PI * radius;
    }
}

在这个示例中,Circle类使用MathConstants.PI常量来计算圆周长。PI常量在程序的任何地方都保持不变且共享。

3. static final字段的初始化

  • 静态初始化

    • static final字段可以在定义时直接初始化,如上例中的PIMAX_SIZE
  • 静态块初始化

    • 如果常量的初始化比较复杂,可以使用静态初始化块:
    public class Configuration {
    
        public static final String CONFIG_VALUE;
    
        static {
            // 静态初始化块
            CONFIG_VALUE = "some value";
        }
    }
    

总结

  • static:表示字段或方法属于类本身,而不是实例,所有实例共享。
  • final:表示字段的值在初始化后不能被改变。
  • static final:通常用于定义类级别的常量,这些常量在程序运行期间是共享的,并且其值不可修改。

使用static final关键字定义常量能够提高代码的可读性和可维护性,并且避免了硬编码的魔法数字或字符串。

posted @   槑孒  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2023-07-25 Ubuntu20.04 文件管理器无法打开
2023-07-25 Ubuntu编译安装GDAL
2023-07-25 CMake Error at CMakeLists.txt: No CMAKE_CXX_COMPILER could be found.
2023-07-25 docker停止所有容器并删除
2023-07-25 ubuntu安装OpenJDK 17,并配置环境变量
2023-07-25 Ubuntu输入su提示认证失败的解决方法
2022-07-25 ArcGIS api for JS三种查询方法比较
点击右上角即可分享
微信分享提示