>我有以下代码
private static void modifyX(int x) {
if (x!=0) {
modifyX(--x);
}
}
我希望在递归调用后更新变量的值,因此我编写了以下代码:
public static void main(String... args) {
int x = 5;
modifyX(x);
System.out.println("Modified value:t" + x);
}
但是,该值保持不变 (5)。
为什么我的变量没有更新?
您传递的不是值 5 的相同实例。相反,JVM 正在创建一个值为 5 的新int
,并将其传递给您的方法。
有关详细信息,请参阅此线程。