成员变量和局部变量
1.在类中的位置不同
成员变量:在类中定义
局部变量:在方法中定义或者方法的参数
2.在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
3.生命周期不同
成员变量:随着对象的创建而存在,随着对象的销毁而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4.初始化值不同
成员变量:有默认初始化值,引用类型默认为null
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
比如我们定义一个Person类:
class Person{
String name; //成员变量,在类中定义
int age; //成员变量,在类中定义
void jump(int hight){ //参数也是局部变量
int m = hight ; //m也是局部变量
System.out.println("我跳了"+m+"米");
}
}
则在调用jump方法(p1.jump())时内存状态变化如下