局部变量和成员变量的区别
- 定义的位置不一样
局部变量:在方法内部定义
成员变量:直接写在类当中 - 作用范围不一样
局部变量:只有在定义的方法里可以使用
成员变量:整个类中通用 - 默认值不一样
局部变量:没有默认值,如果要使用,必须手动赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样 - 内存的位置不一样
局部变量:在栈内存
成员变量:在堆内存 - 生命周期不一样
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象垃圾回收而消失
public class Demo01VariableDifference {
String name; //成员变量
public void methodA(){
int num = 20; //局部变量
System.out.println(num);
System.out.println(name);//成员变量在方法里也可以使用,有默认值
}
public void methodB(int param){ //方法的参数是局部变量
//参数在方法调用的时候,必然会被赋值
System.out.println(param);
int age;
// System.out.println(age); //age没有默认值,无法输出
}
}