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);//输出结果:实体变量
//原因是因为不同对象关于实体变量变量的值在内存中储存的位置不同
//但静态的大家都是在同一个地方储存,所以一个变,其他的都跟着变了
}
}