final是表示不可变性的修饰符,public static final才构成常量;修饰变量时值或引用不可再赋值,修饰方法时禁止重写,修饰类时禁止继承。

在Java中,final 关键字不是用来定义“常量”的专用语法,而是用来表示“不可变性”的修饰符;我们常说的“常量”,其实是用 public static final 修饰的变量,它具备类级别、全局可见、运行期不可修改三个关键特征。
final 修饰变量:值不可再赋值
当 final 修饰一个变量(包括基本类型和引用类型)时,该变量只能被赋值一次,之后不能再修改其值。
- 对于基本类型(如 int、boolean),final 保证的是数值本身不可变;
- 对于引用类型(如 String、ArrayList),final 保证的是引用地址不可变,但对象内部状态仍可改变(例如 final List
list = new ArrayList(); 可以 add 元素,但不能 list = new ArrayList();)。
final 修饰方法:禁止子类重写
用 final 修饰的方法不能被子类覆盖(override),常用于防止核心逻辑被意外修改,或作为性能优化(JVM 可能内联该方法)。
final 修饰类:禁止被继承
被 final 修饰的类无法被其他类继承,典型例子是 String、Integer 等包装类和重要系统类。
立即学习“Java免费学习笔记(深入)”;
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 设计意图是确保类的行为完全可控、不可扩展;
- 如果某个类的语义上“不应当被继承”(比如封装了敏感逻辑或依赖固定结构),可考虑声明为 final。
常量的标准写法:public static final
Java 中约定俗成的“常量”写法是三者组合:
- public:让常量可被其他类访问;
- static:属于类而非实例,节省内存,直接通过类名访问(如 Math.PI);
- final:确保值初始化后不再变化。
命名习惯:全部大写,单词间用下划线分隔,例如:public static final int MAX_RETRY = 3;
基本上就这些。final 的本质是“不可变承诺”,用对地方能让代码更安全、更易理解,但也不必滥用——比如局部变量加 final 多用于 lambda 或明确表达意图,并非强制要求。








