注:本专栏文章均为本人原创,未经本人授权请勿私自转载,谢谢。
1. 存储位置、生命周期不同
- 局部变量位于方法或代码块中,即存储于方法栈中,当前方法栈从压入到弹出的这段时间,即为该局部变量的生命周期。
- 成员变量位于方法外的类内,即存储于堆中的对象里面,当前类某对象从创建到销毁的这段时间,即为该成员变量的生命周期。
2. 修饰符不同
- 局部变量可被 final 所修饰,但不能被访问控制修饰符及 static 所修饰。
- 成员变量可被 final 修饰,也可被访问控制修饰符及 static 所修饰。
3. 默认值不同
- 局部变量不会自动赋值,使用之前需要初始化赋值,否则编译器会报错。
- 成员变量会自动赋值该类型的默认值(例外:被 final 修饰的成员变量必须显式地赋值)。