局部變量、實例變量和靜態變量的區別

實例變量:

也叫對象變量、類成員變量;從屬於類由類生成對象時,才分配存儲空間,各對象間的實例變量互不干擾,能經過對象的引用來訪問實例變量。但在Java多線程中,實例變量是多個線程共享資源,要注意同步訪問時可能出現的問題。bash

public class Demo {  
    //如下都是實例變量(成員變量、對象變量)  
    private String nameString;  
    public int age;  
    protected int priority;  
    //實例方法  
    public String getNameString(){  
        return this.nameString;  
    }  
}
複製代碼

類變量:

也叫靜態變量,是一種比較特殊的實例變量,用static關鍵字修飾;一個類的靜態變量,全部由這類生成的對象都共用這個類變量,類裝載時就分配存儲空間。一個對象修改了變量,則因此對象中這個變量的值都會發生改變。多線程

public class Demo {  
    //類變量(靜態變量)  
    public static int a = 0;  
    //實例變量  
    private String nameString;  
}
複製代碼

局部變量:

方法中或者某局部塊中聲明定義的變量或方法的參數被稱爲局部變量,他們只存在於建立他們的block裏({}之間)沒法在block外進行任何操做,如讀取、賦值。在Java多線程中,每一個線程都複製一份局部變量,可防止某些同步問題發生。ui

public static int a = 0;  
    //實例變量  
    private String nameString;  
      
    public void test(){  
        //局部變量  
        int temp = 1;  
        System.out.println(temp);  
    }
複製代碼
相關文章
相關標籤/搜索