当前位置: 首页 > news >正文

Java 中 final 与 static 的区别

Java 中 finalstatic 的区别

在 Java 中,finalstatic 是两个不同的关键字,它们的核心作用和不可变性特性有本质区别:

一、final 的核心作用

1. 变量(不可变引用)

  • 不可重新赋值final 修饰的变量一旦初始化后,引用地址不可变(基本类型值不可变,对象类型引用不可变)。
  • 对象内容可能可变:若 final 修饰对象引用,对象内部状态可能仍可修改(例如 final List 可以 add 元素,但不能重新指向新列表)。
final int x = 10;
x = 20; // 编译错误!final List<String> list = new ArrayList<>();
list.add("Hello"); // 允许操作对象内容
list = new ArrayList<>(); // 编译错误!引用不可变

2. 方法(不可重写)

  • final 方法不能被子类重写,但可以重载。

3. 类(不可继承)

  • final 类不能被继承(如 String 类)。

二、static 的核心作用

1. 类级别成员

  • static 修饰的变量、方法、代码块属于类,而非实例。
  • 所有实例共享:修改 static 变量会影响所有实例。
class Counter {static int count = 0; // 所有实例共享Counter() { count++; }
}

2. 无不可变性保证

  • static 变量默认可变,需配合 final 实现常量。
class Config {static int timeout = 100;       // 可被修改static final int MAX_SIZE = 1024; // 类常量
}

三、关键区别

特性finalstatic
作用目标变量、方法、类变量、方法、代码块、嵌套类
不可变性确保引用/值不可变(对象内容可能可变)无直接关联,变量默认可变
内存归属实例变量或常量类级别变量/方法
典型场景常量、不可变逻辑、防止继承/重写共享资源、工具方法

四、组合使用:static final 常量

staticfinal 结合时,定义类级别的不可变常量:

public class MathUtils {public static final double PI = 3.14159; // 类常量,不可变且全局访问
}

五、总结

  • final:确保变量引用/值不可变(对象内容可能可变),或限制方法/类的扩展性。
  • static:定义类级别成员,与不可变性无关,需结合 final 实现常量。
  • 不可变性 需通过设计实现(如 final + 不可变对象),而非单纯依赖关键字。

相关文章:

  • 什么是数据中台
  • JUC编程monitor、锁膨胀以及相关关键字
  • 友思特应用 | LCD显示屏等玻璃行业的OCT检测应用
  • 基于正点原子阿波罗F429开发板的LWIP应用(2)——设置静态IP和MAC地址修改
  • 进程之IPC通信一
  • 51单片机编程学习笔记——无源蜂鸣器演奏《祝你生日快乐》
  • 大模型服务如何实现高并发与低延迟
  • SAR ADC 比较器寄生电容对性能的影响
  • OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
  • [特殊字符] jQuery 响应式瀑布流布局插件推荐!
  • 王树森推荐系统公开课 排序04:视频播放建模
  • Mybatis面向接口编程
  • Conda环境管理:确保Python项目精准复现
  • 基于Qwen3-7B FP8与基石智算打造高性能本地智能体解决方案
  • 【Java高阶面经:微服务篇】1.微服务架构核心:服务注册与发现之AP vs CP选型全攻略
  • C++:STL
  • 2025华为OD机试真题+全流程解析+备考攻略+经验分享+Java/python/JavaScript/C++/C/GO六种语言最佳实现
  • lasticsearch 报错 Document contains at least one immense term 的解决方案
  • 大模型预训练、微调、强化学习、评估指导实践
  • Token的组成详解:解密数字身份凭证的构造艺术
  • 为配合铁路建设,上海地铁3号线将在这两个周末局部缩时运营
  • 存款利率、LPR同日下调,机构称对银行的影响偏正面
  • 又是“9+2”复式票,浦东退休阿姨擒大乐透1153万头奖
  • 金融监管总局将研究出台专门的城市更新项目贷款管理办法:引导大力支持城中村的改造等
  • 讲述“外国货币上的中国故事”,《世界钱币上的中国印记》主题书刊出版发布
  • 马上评|劳动课该如何找回“存在感”