Java中一个变量只有一个final修饰符
时间: 2024-09-25 18:20:03 浏览: 40
深入Java Final
在Java中,`final`关键字有几种用途,其中关于变量的一个常见用法就是用来声明常量。`final`修饰的变量意味着它的值在初始化后就不能改变,即它一旦被赋值,就保持不变。这包括基本类型的值(如int、float等)以及引用类型的引用(如String或数组)。对于基本类型,`final`变量也表示它是不可变的。
例如:
```java
final int MAX_VALUE = 100; // 声明一个整型常量MAX_VALUE
final String NAME = "John"; // 字符串常量
final List<String> list = new ArrayList<>(); // 可变集合,final修饰的是对象引用,不是内容
list.add("Apple"); // 可以添加元素,但引用本身不可变
```
对于引用类型,如果将其设为null,那么`final`并不会阻止其被重新赋值为非null。例如:
```java
final Object obj = null;
obj = new Object(); // 此处允许更改引用,但不会影响原始引用的目标
```
然而,`final`不能同时用于局部变量的声明和初始化,因为这意味着该变量会在声明的同时就被赋予了确定的值,不允许再改变,这就违背了其本意。所以,只能选择在一个地方使用`final`,要么声明变量时指定,要么在赋值时设定。
阅读全文