我一直认为最终变量只分配一次。 在这种情况下,有人可以告诉我最终关键字的作用吗? 这是否意味着它只是"最终"直到函数返回?
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
答案 0 :(得分:2)
x
作为final
局部变量,只能在其存在的范围内分配一次,这是onClick
方法的主体。
对该方法的每次调用都会创建一个只能分配一次的新x
变量。
答案 1 :(得分:1)
这是一个局部变量,它不仅仅是final
,直到方法结束,它只存在,直到方法结束。
在结束时,该变量有资格进行垃圾回收。
答案 2 :(得分:1)
是的,在这种情况下x
是一个int,一旦它获得初始随机值,该变量就不能再被更改了......
答案 3 :(得分:1)
这意味着它只能在其生命周期内分配一次,局部变量的生命周期跨越它们所处的方法。
答案 4 :(得分:0)
每个调用中有5个调用或调用x变量被定义和分配。变量x是本地的,它在onClick方法的范围内。