.定义位置不同
成员变量定义在类中,方法外
局部变量定义在方法,语句,代码块中
2.作用范围不一样
成员变量,作用范围是整个类
局部变量,方法内,语句内,代码块内
3.默认值不同
成员变量,有自己的默认值
局部变量,没有默认值,不赋值不能使用,第一次赋值在栈中分配内存
4.内存位置不同
成员变量,跟随对象进入堆内存存储
局部变量,跟随自己的方法,进入栈内存存储
5.生命周期不同
成员变量,跟随对象,在堆中存储,等待JVM清理,生命周期较长
局部变量,跟随方法,方法出栈,跟随消失,生命周期短