Java-成员变量与局部变量的区别
博主也不喜欢说废话,下面直接来看
1.定义的位置不一样
局部变量:在方法的内部。
成员变量:在方法的外部,直接写在类当中。(在类的内部,方法的外部)
2.作用范围不一样
局部变量:只有方法当中才可以使用,除了方法就不能再使用。
成员变量:整个类全都可以通用。
3.默认值不一样
局部变量:没有默认值,如果要想使用,必须手动进行赋值,即局部变量必须进行初始化。
成员变量:如果没有赋值,会有默认值,规则(和数组一样)如下:
类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
float | 0.0f |
double | 0.0 |
char | /u0000 |
boolean | false |
- 如果为引用类型,默认值为null. 例如 String类型
成员变量又分为: 普通成员变量 和 静态成员变量
静态成员变量: 相比普通成员变量,多了 static 修饰,
静态成员变量是所有对象共有的,只有一份
4和5 对于初学者来说可以暂时不用看,了解1,2,3 基本就不会迷惑了.
4.内存的位置不一样*
局部变量:位于栈内存。
成员变量:位于堆内存。
5.生命周期不一样*
局部变量:随着方法进栈而诞生,随着方法出栈而消失。
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失。
通常情况下,局部变量的生命周期比成员变量的生命周期更短一些。