函数

时间:2016-03-01 12:21:14

标签: java variables final

我一直认为最终变量只分配一次。 在这种情况下,有人可以告诉我最终关键字的作用吗? 这是否意味着它只是"最终"直到函数返回?

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

5 个答案:

答案 0 :(得分:2)

x作为final局部变量,只能在其存在的范围内分配一次,这是onClick方法的主体。

对该方法的每次调用都会创建一个只能分配一次的新x变量。

答案 1 :(得分:1)

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

在结束时,该变量有资格进行垃圾回收。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

这意味着它只能在其生命周期内分配一次,局部变量的生命周期跨越它们所处的方法。

答案 4 :(得分:0)

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