static final

static
1.修饰方法和变量(成为静态变量,静态方法),也可形成静态代码块(不能出现在方法内,其他地方都可以出现)
2.修饰变量,共享同一个变量
3.修饰方法,不能调用非静态的成员,不能含有抽象的对象(因为静态成员类一加载即生效,抽象的对象未实例生效矛盾)
4.静态代码块,不能调用非静态成员,不能含有抽象的对象,可以再任何位置(除了不能再方法内部)
5.直接通过类名.方法名/变量名调用
final
1.修饰类,变量,方法
2.修饰类表示不能被继承,没有子类
3.修饰变量表示常量
4.修饰方法表示可以被继承不能被覆盖,不能修饰构造方法
5.fianl方法参数 void f1(final int i){}表示在方法内i是常量
static final
1.修饰变量表示全局常量
2.修饰方法表示,不可被覆盖的静态方法,里面不能有非静态成员和未实例化对象)
### Java `static final` 关键字的作用和使用场景 #### 作用 `static final` 是两个修饰符组合使用的典型例子,在Java编程中有特定的意义。当变量被声明为 `static final` 时,意味着该变量属于类而不是对象,并且一旦赋值就不能再改变其值。 - **静态成员共享**:`static` 表示这个字段是静态的,即它是类级别的属性而非实例级别。这意味着所有此类的对象都共享同一个静态变量副本[^1]。 - **不可变性**:`final` 则表示此常量在其生命周期内不允许更改。对于基本数据类型的 `static final` 变量来说,这意呸着它的值固定不变;而对于引用类型,则是指引用本身不能再指向其他对象,但是所指对象内部状态仍可能变化[^3]。 因此,`static final` 常用于定义全局性的、不会发生变化的数据项,比如数学中的圆周率π或者物理单位转换系数等。 #### 使用场景 - **配置参数**:应用程序中的一些固定的设置或配置可以通过 `static final` 来实现,这样可以在整个项目范围内保持一致性和稳定性。 - **枚举替代品**:虽然现代版本的Java已经有了专门的枚举类型支持,但在某些情况下仍然会看到开发者利用 `public static final int` 或者字符串来模拟枚举行为[^2]。 - **工具类方法返回值**:一些辅助函数可能会返回预设好的错误码或者其他标志位作为结果反馈给调用方,这些也可以通过 `static final` 定义出来以便于管理和查找。 ```java // 示例代码展示如何定义 PI 的常数值 public class MathConstants { public static final double PI = 3.14159; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值