1. 定义位置不同
局部变量:定义在方法中或者方法的声明上
成员变量:定义在类中方法外
2. 内存位置不同
局部变量:存储在栈中的方法中
成员变量:存储在堆中的对象中
3. 初始值不同
局部变量:没有默认初始值,想要使用一定要先赋值在使用
成员变量:有默认初始化值,如果不赋值也可以使用
String类型的变量默认初始值 null
int类型的变量默认初始值 0
boolean类型的变量默认初始值 false
double类型的变量默认初始值 0.0
char类型的变量默认初始值 '\u0000'
4.生命周期不同
局部变量:因为是存储在方法中,所以是随着方法的存在而存在,随着方法的消失而消失
成员变量:因为是存储在对象中,所以是随着对象的存在而存在,随着对象的消失而消失
5.作用域范围不同
局部变量:出了方法就用不了了
成员变量:在本类中的方法中都可以使用