成员变量、局部变量和静态变量的区别
一、成员变量(/ 实例变量)
- 成员变量随对象的建立而建立,随对象的消失而消失,存在于对象所在的堆内存中;
- 成员变量定义在类中,在整个类中都可以被访问;
- 成员变量具有默认初始化值。
二、局部变量
- 局部变量定义在局部范围内,只在所属局部范围内有效。如函数内、语句内;
- 局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放;
- 局部变量没有默认的初始化值;
三、静态变量
- 静态变量定义在类中,方法外;
- 静态变量有默认的初始化值;
- 静态变量可被对象或类名调用;
- 静态变量存在于方法区;
- 静态变量随类共存亡;
四、成员变量和静态变量(/ 类变量)的区别
- 生命周期不同:
成员变量:随对象的创建而创建,随对象的消失而消失;
静态变量:随类加载而存在,随类的消失而消失。 - 调用方式不同
成员变量:只能被对象调用;
静态变量:可被对象或者类名调用。 - 数据存储位置不同
成员变量:存储在堆内存的对象中,是对象的特有属性;
静态变量:静态变量数据存储在方法区的静态区,是对象的共有属性。
五、三者区别