1.在类中的位置不同
成员变量:在类中方法外
局部变量:在方法内部,或者方法的声明上(即在形参列表中)
2.内存中的位置不同
成员变量:在堆内存中
局部变量:在栈内存中
3.声明周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失。
局部变量:随着方法的调用或代码块的执行而存在,随着方法的调用完毕或代码块执行结束而消失。
4.初始值
成员变量:有默认的初始值
局部变量:没有默认的初始值,使用之前必须先赋值,否则编译器会报错。