Java 函数中的最终变量

Java final variable in a function

我一直以为final变量只赋值一次。 有人可以告诉我 final 关键字在这种情况下的作用吗? 是不是说只有"final"到函数returns?

public void onClick(View view) {
    final int x = new Random().nextInt();
    System.out.println(x);
}

输出:

03-01 14:18:25.022: I/System.out(26253): 416604980
03-01 14:18:25.332: I/System.out(26253): -1080822415
03-01 14:18:25.522: I/System.out(26253): -170506517
03-01 14:18:26.982: I/System.out(26253): 1438898132
03-01 14:18:27.112: I/System.out(26253): 401245673

这是一个局部变量,它不仅final直到方法结束,它只存在到方法结束。

在结束 } 时,变量符合垃圾收集条件。

是的,在这种情况下 x 是一个整数,一旦它获得初始随机值,变量就不能再改变了...

x作为final局部变量,在其存在范围内只能赋值一次,也就是onClick方法体。

每次调用该方法都会创建一个新的 x 变量,该变量只能赋值一次。

这意味着它在其生命周期内只能被赋值一次,并且局部变量的生命周期跨越它们所在的方法。

每次调用中有 5 次调用或调用 x 变量被定义和赋值。变量 x 是本地的,它在 onClick 方法的范围内。