具有最終的變量是如何考慮這一段代碼在foreach循環工作
public static void main(String[] args) {
for(final String s : Arrays.asList("a","b","c")){
System.out.println(s);
}
}
此代碼不服務於特定的目的,但證明final
foreach-loop
變量的使用。
這是如何工作的?單個變量如何可以是final
,但是每個循環都有一個不同的值。或者這個變量在不同的作用域\堆棧中多次聲明?
我想會這樣。如果編譯器沒有抱怨,暗示爲每次迭代的字符串分配一個新的內存地址。所以舊的變量每次迭代都會超出範圍。 –
@GuyBouallet:這不是真的重複。這個問題是關於for-each循環的循環變量(而不是在循環體內聲明的任意變量)。 –