两者区别
定义的位置不一样
- 局部变量:在方法的内部
- 成员变量:在方法的外部,直接写在类当中
作用范围不一样
- 局部变量:只有方法中才可以使用,出了方法就不能用
- 成员变量:整个类全都可以通用
默认值不一样
- 局部变量没有默认值,想使用必须手动赋值
- 成员变量有默认值
内存位置不一样
- 局部变量位于栈内存
- 成员变量位于堆内存
生命周期不同
- 局部变量随着方法进栈诞生,随着方法出栈消失
- 成员变量随着对象创建诞生,随着对象被回收消失
成员变量的默认值
数据类型 | 默认值 | |
---|---|---|
基本类型 | 整型(byte,short,int,long) | 0 |
浮点型(float,double) | 0.0 | |
字符型(char) | ‘\u0000’ | |
布尔型(boolean) | false | |
引用类型 | 数组,类,接口 | null |