java 中 final 参数传递值的影响:引用类型:不能重新分配引用,但可以修改对象内容。基本类型:不能修改传递给方法的值。

Java 方法中的 final 参数:传递值的影响
在 Java 中,final 修饰符用于声明不可变变量。当将不可变引用(例如 String 或 int)作为 final 参数传递给方法时,可以防止其内部被修改。
传递引用类型的 final 参数
立即学习“Java免费学习笔记(深入)”;
对于引用类型的参数(例如 String、List、Object),将 final 传递给方法会产生以下影响:
- 不能重新分配引用:方法内部无法将引用指向其他对象。
-
可以修改对象本身:如果
final参数引用可变对象(例如 List),方法内部可以修改对象的内容,但无法更改对对象的引用本身。
代码示例:
public class Example {
public static void main(String[] args) {
final String name = "John Doe";
// 尝试重新分配引用,将失败
try {
name = "Jane Doe";
System.out.println("Name changed to " + name);
} catch (final IllegalStateException e) {
System.out.println("Name cannot be changed because it's final");
}
// 修改字符串对象的内容,仍然可以
name.toLowerCase();
System.out.println("Lowercase name: " + name); // 输出:"john doe"
}
}传递基本类型的 final 参数
对于基本类型的参数(例如 int、boolean、byte),将 final 传递给方法会产生以下影响:
- 不能修改值:方法内部无法更改传递给它的值。
代码示例:
public class Example {
public static void main(String[] args) {
final int number = 10;
// 尝试修改值,将失败
try {
number++;
System.out.println("Number changed to " + number);
} catch (final IllegalStateException e) {
System.out.println("Number cannot be changed because it's final");
}
}
}实战案例
使用 final 参数可以满足以下场景:
- 确保方法不会意外修改传入的参数,从而避免代码中的错误。
- 允许修改参数对象本身,从而实现对对象的定制或修改。









