一.在类中的位置不同
- 成员变量:类中,方法外
- 局部变量:方法中或者方法声明上(形式参数)
二.初始化值的不同
- 成员变量:有默认值
- 局部变量:没有默认值,必须先定义,然后赋值,最后使用
三.作用范围不同
- 成员变量:整个类都可以使用
- 局部变量:只用于自己的方法内部
四.在内存中位置不同
- 成员变量:堆内存(属于对象),成员变量在方法区中只是被加载到内存了,真正使用是在堆
- 局部变量:栈内存(属于方法)
五.生命周期不同
- 成员变量:随着对象的创建而存在,随着对象的消失而消失
- 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失