1、从定义上来讲:
局部变量定义在函数中。
成员变量定义在类中。
2、从内存存储上来讲:
局部变量随着函数的运行会在栈内存中出现,局部变量存储在栈内存中。
成员变量会随着对象的出现在堆中存在,成员变量存储在堆内存中。
3、从初始值上来讲:
局部变量在定义时需要指定初始值(局部变量没有默认值),只有初始化之后才能使用。
成员变量可以不用初始化,有默认值。
4、从存活时间上来讲(生命周期)
局部变量是随着函数的进栈在函数所属的栈内存中存在,随着函数的出栈就消失。
成员变量是随着对象的出现在堆中出现。随着对象的消失而消失。