1. 程式人生 > 其它 >成員變數與區域性變數的區別有哪些?

成員變數與區域性變數的區別有哪些?

  1. 從語法形式上看,成員變數是屬於類的,而區域性變數是在程式碼塊或方法中定義的變數或是方法的引數;成員變數可以被public,private,static等修飾符所修飾,而區域性變數不能被訪問控制修飾符及static所修飾;但是,成員變數和區域性變數都能被final所修飾。
  2. 從變數在記憶體中的儲存方式來看,如果成員變數是使用static修飾的,那麼這個成員變數是屬於類的,如果沒有使用static修飾,這個成員變數是屬於例項的。而物件存在於堆記憶體,區域性變數則存在於棧記憶體。
  3. 從變數在記憶體中的生存時間上看,成員變數是物件的一部分,它隨著物件的建立而存在,而區域性變數隨著方法的呼叫而自動消失。
  4. 從變數是否有預設值來看,成員變數如果沒有被賦初,則會自動以型別的預設值而賦值(一種情況例外:被final
    修飾的成員變數也必須顯式地賦值),而區域性變數則不會自動賦值。