一、成员变量
1、成员变量定义在类中,在整个类中都可访问
2、成员变量与对象共存亡
3、成员变量有默认初始值
二、局部变量
1、局部变量定义在局部范围内,如:函数、代码块内
2、局部变量存在栈中,作用范围结束,变量空间自动释放
3、局部变量无默认初始值
三、静态变量
1、静态变量可以被所有对象访问
2、静态变量与类共存亡
四、三种变量的比较
| 成员变量 | 局部变量 | 静态变量 |
定义位置 | 在类中,方法外 | 方法中,或者方法的形式参数 | 在类中,方法外 |
初始化值 | 有默认初始化值 | 无,先定义,赋值后才能使用 | 有默认初始化值 |
调用方式 | 对象调用 | --- | 对象调用,类名调用 |
存储位置 | 堆中 | 栈中 | 方法区 |
生命周期 | 与对象共存亡 | 与方法共存亡 | 与类共存亡 |
别名 | 实例变量 | --- | 类变量 |