基礎概念就不用多講,相信大家都知道,不知道很用以查到對應的資料,現在就把比較明顯的差別根據本人所掌握的介紹一下:
局部變量:函數中定義的變量稱爲局部變量。
1、一個函數中定義的變量不能被另一個函數使用。
2、每次調用函數時局部變量都表示不同的存儲空間。
方法內部定義的變量,在程序執行到它的時候,系統爲它在棧上分配空間。而方法在棧上分配的空間在此方法執行結束時會釋放掉。這樣就產生一個問題:如果想將方法中此變量的只保存至下一次調用時,如何實現?
最容易想到的方法是定義一個全局變量,但定義一個全局變量有許多缺點,最明顯的缺點是破壞了此變量的訪問範圍(使得在此方 法中定義的變量,不僅僅受此方法控制)。使用static就可以解決此問題,被static修飾的變量稱爲靜態變量。
從面向對象的角度出發,當需要一個數據對象爲整個類而非某個對象服務,同時又力求不破壞類的封裝性,既要求此成員隱藏在類的 內部,又要求對外不可見的時候,就可以使用static關鍵字。
靜態變量還有以下優點:可以節省內存,它使所有對象所公有的,所以對多個對象來說,靜態變量只存儲一處,供所有對象共用。 靜態變量的值對每個對象都是一樣,但它的值是可以更新的。只要某一個對象對靜態變量的值更新一次,所有對象都能訪問更新後的 值,這樣可以提高時間效率。