Java是一種面向?qū)ο蟮木幊陶Z言,其變量分為實(shí)例變量和靜態(tài)變量。相對于實(shí)例變量,靜態(tài)變量屬于類級別的變量,在整個程序運(yùn)行周期內(nèi)只存在一份副本,可以被所有實(shí)例共享。
public class MyClass { static int myStaticVar; // 靜態(tài)變量 int myInstanceVar; // 實(shí)例變量 }
在上述代碼中,myStaticVar是靜態(tài)變量,可以使用類名來訪問它,而myInstanceVar是實(shí)例變量,只能通過類的實(shí)例來訪問它。
靜態(tài)變量的作用范圍是整個類,可以在類被加載時初始化,其值會一直保持到整個程序結(jié)束,而實(shí)例變量的作用范圍只是該實(shí)例。
靜態(tài)變量的另一個作用是可以被所有實(shí)例對象共享,如果多個實(shí)例需要訪問相同的數(shù)據(jù),可以將這個數(shù)據(jù)定義為靜態(tài)變量。這樣可以節(jié)省內(nèi)存空間,提高程序的運(yùn)行效率。
靜態(tài)變量通常用于跨類和跨方法共享數(shù)據(jù),比如表示全局計(jì)數(shù)器、系統(tǒng)配置等。在使用靜態(tài)變量時,需要注意多個線程可能同時訪問它,因此要注意線程安全。