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 方法的范围内。
我一直以为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 方法的范围内。