- 在类中的位置不同
成员变量:类中方法外
局部变量:方法内或者方法声明上
- 在内存中的位置不同
成员变量:堆内存
局部变量:栈内存
- 生命周期不同
成员变量:随着对象的存在而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
- 初始化值不同
成员变量:有默认的初始化值
局部变量:没有默认的初始化值,必须先定义、赋值,才能使用。
class XXX{
int num=0;//成员变量
public void show(){
int num2=1;//局部变量
}
}