在Java中,成員變量(也稱為實例變量)和靜態變量是兩種不同的變量類型,它們的生命周期有所不同。下面分別解釋這兩種變量的生命周期:
成員變量是定義在類中的非靜態變量。每個對象實例都有自己的成員變量副本。當創建一個類的對象時,Java虛擬機會為這些成員變量分配內存空間。當對象不再被引用時(例如,對象被設置為null或者超出作用域),垃圾回收器會回收這個對象占用的內存空間,同時成員變量也會被銷毀。因此,成員變量的生命周期與對象實例的生命周期相同。
靜態變量是定義在類中的靜態變量,它們屬于類本身而不是類的某個實例。靜態變量在類被加載到JVM時初始化,只會初始化一次。當類被卸載時(例如,應用程序關閉),靜態變量才會被銷毀。因此,靜態變量的生命周期與類的生命周期相同。
總結一下: