1、定义位置不同
局部变量:在方法内部定义
成员变量:在方法的外部定义,直接写在类当中
2、作用范围不同
局部变量:只有方法当中才可以使用,出了方法就不能再用
成员变量:整个类全都可以使用
3、默认值不同
局部变量:没有默认值,必须在使用前进行赋值
成员变量;如果没有赋值,会有默认值,规则和数组相同
4、内存的位置不同
局部变量:位于栈内存
成员变量:位于堆内存
5、生命周期不同
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失
(因为垃圾回收的不确定性,通常情况下,成员变量生命周期较长)