先来看一段代码
class Chinese{
private static int happiness;//成员静态变量 (类变量)
private String name;//成员非静态变量(实例变量)
void hardWord(){
//每个人都努力工作
++happiness;
}
public static void main(String[] args) {
System.out.println("车神一个人..");
Chinese chinese = new Chinese("车神");
chinese.hardWord();
System.out.println(chinese.getName()+"的幸福感:"+chinese.getHappiness());
System.out.println("-----------------------------------------------------------------");
System.out.println("二代目加入后...");
Chinese chinese2 = new Chinese("二代目");
chinese2.hardWord();
System.out.println(chinese.getName()+"的幸福感:"+chinese.getHappiness());
System.out.println(chinese2.getName()+"的幸福感:"+chinese2.getHappiness());
System.out.println("结论:一个人努力工作,会让大家的幸福感都得到提升");
}
}
最后输出
happiness做为类变量 , 每个实例在初始化后 , 都会共享类变量,对类变量的操作会影响到其他实例
name作为实例变量,每个实例都是私有的,对其操作只会影响自己
附jvm模型(有错请务必指正)
https://github.com/doocs/jvm/blob/master/README.md jvm学习资料