对于静态变量的理解

class Emp{
    
    //非静态的成员变量。
    static    int count = 0;    //计数器
 
    String name;
    
    //构造代码块
    {
        count++;
    }
 
    public Emp(String name){
        this.name = name;
 
    }
 
    public Emp(){  //每创建一个对象的时候都会执行这里 的代码
        
    }
    
    public void showCount(){
        System.out.println("创建了"+ count+"个对象");
    }
}
 
class Demo11 
{
    public static void main(String[] args) 
    {
        Emp e1 = new Emp();
        Emp e2 = new Emp();
        Emp e3 =new Emp();
        e3.showCount();
    }
}

对于静态变量的理解_第1张图片

总结:

静态的成员变量与非静态的成员变量的区别:
1. 作用上的区别:
1. 静态的成员变量的作用共享一个 数据给所有的对象使用。
2. 非 静态的成员变量的作用是描述一类事物的公共属性。
2. 数量与存储位置上的区别:
1. 静态成员变量是存储方法 区内存中,而且只会存在一份数据。
2. 非静态的成员变量是存储在堆内存中,有n个对象就有n份数据。
3. 生命周期的区别:
1. 静态的成员变量数据是随着类的加载而存在,随着类文件的消失而消失。
2.非静态的成员数据是随着对象的创建而存在,随着 对象被垃圾回收器回收而消失。

你可能感兴趣的:(对于静态变量的理解)