一、成员变量和局部变量
1.区别
-
在类中的位置不同
成员变量 类中方法外
局部变量 方法内或方法声明上
-
在内存中的位置不同
成员变量 堆内存
局部变量 栈内存
-
生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
-
初始化值不同
成员变量 有默认的初始化值
局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
【问】:成员变量和名称可不可以和局部变量一样呢?
【答】:可以,但是使用的时候要注意,先找小范围,再找大范围。
二、静态变量和成员变量的区别:
1. 所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
2. 在内存中的位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
3. 生命周期不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
4. 调用方式不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用