1. 在类中的位置不同:
成员变量:类中方法外
局部变量:方法定义中或者方法声明上(方法中)
2. 在内存中的位置不同:
成员变量在堆中
局部变量在栈中
3. 生命周期不同:
成员变量:随着对象的创建而存在,随着对象的消失而消失;
局部变量:随着方法的调用而存在,随着方法的调用完毕而小时。
4. 初始化值不同:
成员变量:有默认值
局部变量:没有默认值,必须定义,赋值,然后才能使用。
默认值:
布尔值:Boolean false
字节型:byte 0
短整型:short 0
字符型:char '\u0000'
整形:int 0
长整型:long 0
浮点型:float 0.0
双精度浮点型:double 0.0
引用数据类型: null
注:局部变量必须先定义赋值,否则会报运行时异常。