1.靜態成員變量是屬於整個類的全局變量,它不單屬於某一個對象;普通成員變量是屬於類中的對象,它不能被所有對象共享。
2.靜態成員變量必須在全局進行定義,而由於普通成員變量在創建一個對象的時候可以對它進行初始化,因此就不需要單獨對它進行定義,只要聲明即可。
3.靜態成員變量在沒有對象之前就存在。
程序示例
public class HelloWorld {
static String className = "靜態";//聲明個靜態變量
String xie="實體變量";//聲明個成員變量
public static void main(String[] args) {
HelloWorld n=new HelloWorld();//創建兩個對象以便於比較
HelloWorld v=new HelloWorld();
//從下面這段代碼可以看出只要一個對象把靜態變量的值變了,那所有的對象的都跟着變,這就是所謂的全員共享
System.out.println(n.className); //輸出結果:靜態
System.out.println(v.className); //輸出結果:靜態
n.className="靜態2";
System.out.println(n.className);//輸出結果:靜態2
System.out.println(v.className);//輸出結果:靜態2
//從下面這段代碼可以看出對象n只能改變自己關於成員變量的值,改變不了別的對象關於成員變量的值
System.out.println(n.xie);//輸出結果:實體變量
System.out.println(v.xie;//輸出結果:實體變量
n.xie="實體變量2";
System.out.println(n.xie);//輸出結果:實體變量2
System.out.println(v.xie);//輸出結果:實體變量
//原因是因為不同對象關於實體變量變量的值在內存中儲存的位置不同
//但靜態的大家都是在同一個地方儲存,所以一個變,其他的都跟着變了
}
}