1. 程式人生 > >靜態變量和成員變量的區別 && 成員變量和局部變量的區別

靜態變量和成員變量的區別 && 成員變量和局部變量的區別

存在 通過 == 賦值 log 聲明 class 類的加載 範圍

=============================================================================

1)靜態變量和成員變量的區別:
  (1):所屬不同:
    靜態變量:屬於類,也稱為類變量。
    成員變量:屬於對象,也稱為對象變量或實例變量。
  (2):在內存中的位置不同:
    靜態變量:存儲於方法區的靜態區。
    成員變量:存儲於堆內存。
  (3):生命周期不同:
    靜態變量:靜態變量是隨著類的加載而加載,隨著類的消失而消失。
    成員變量:成員變量是隨著對象的創建而存在,隨著對象的消失而消失。
  (4):調用不同:


    靜態變量:可以通過對象名調用,也可以通過類名調用。
    成員變量:只能通過對象名調用。

=============================================================================

2)成員變量和局部變量的區別:
  (1)在類中的位置不同:
    成員變量:在類中方法外。
    局部變量:在方法定義中或者方法聲明上(即形參)。
  (2)在內存中的位置不同:
    成員變量:在堆中。
    局部變量:在棧中。
  (3)生命周期不同:
    成員變量:隨著對象的創建而存在,隨著對象的消失而消失。
    局部變量:隨著方法的調用而存在,隨著方法的調用完畢而消失。
  (4)初始化值不同:


    成員變量:有默認值。
    局部變量:沒有默認值,必須定義,賦值,然後才能使用。
  (5)註意事項:
    局部變量名稱可以和成員變量名稱一樣,但是在方法中使用該變量的時候,采用的是就近原則(即先找小範圍,再找大範圍)。

=============================================================================

靜態變量和成員變量的區別 && 成員變量和局部變量的區別