对比成员变量和局部变量的不同:
-
1.定义的位置不一样【重点记忆】
局部变量:定义在方法内部。
成员变量:直接定义在类当中,方法外面的。 -
2.内存中的位置不一样
局部变量:在 栈 内存中,stack。
成员变量:在 堆 内存中,heap。是new构造函数时使用的。 -
3.生命周期不一样
局部变量:随着方法的进栈而出现,随方法的出栈而消失。
成员变量:随着对象被创建而出现,随着对象被JVM回收而消失。 -
4.默认值不一样【重点记忆】
局部变量:没有默认值,必须赋值之后才能使用。
成员变量:如果没有赋值,将会有一个默认值。
public class Demo05Variables {
String name; //成员变量
public void method(int param) { //成员方法的参数也是一个局部变量
int num = 10;//局部变量
}
}