在語法定義上的區別:靜態變量前要加 static 關鍵字,而實例變量前則不加。
在程序運行時的區別:靜態變量則可以直接使用類名來引用。靜態變量不屬於某個實例對象,而是屬於類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。且一個類不管創建多少個對象,靜態變量在內存中有且僅有一個拷貝。在 Java 開發中,上下文類和工具類中通常會有大量的靜態成員。
實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。