這個問題在這里已經有了答案: 什么破壞了java中的區域變數? (3 個回答) 昨天關門。
我知道一旦特定回圈或函式完成執行,在回圈或函式中宣告和初始化的變數就會被破壞。但是當我編碼時,我發現在回圈中宣告和初始化的變數顯然在回圈的每次迭代后都會被破壞。
public class a {
public static void main(String[]args) {
int a = 10;
for(int i =0;i<a;i ) {
int x =i;
System.out.print(x);
}
}
}
在上面的代碼中,變數 x 被宣告和初始化了 10 次。所以我推斷,為了不斷地多次宣告一個變數,它必須在每次宣告后被銷毀。但是我不確定我是否在不知不覺中留下了一些事實,或者是否還有其他事情發生,所以如果有人可以向我解釋一下,這將對我有很大幫助
uj5u.com熱心網友回復:
是的,在回圈中定義的區域變數在for每個回圈中都超出了范圍。
- 每個原始值都被銷毀。
- 每個物件,如果沒有在其他地方參考,就會成為垃圾回收的候選物件,最終將被銷毀。
所以在你的代碼中:
int x = i ;
…宣告、填充和銷毀x發生在每個回圈上。十個回圈意味著十次宣告、填充和銷毀。
{}注意for回圈的花括號。花括號總是定義一個范圍級別。在一對大括號中定義的任何變數在退出大括號時都會超出范圍。
?? 在花括號里面,你有一個intnamed x,在花括號外面你沒有。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435610.html
上一篇:“等級”無法決議為變數
