局部变量与成员变量的区别

176 阅读1分钟

注:本专栏文章均为本人原创,未经本人授权请勿私自转载,谢谢。

1. 存储位置、生命周期不同

  • 局部变量位于方法或代码块中,即存储于方法栈中,当前方法栈从压入到弹出的这段时间,即为该局部变量的生命周期。
  • 成员变量位于方法外的类内,即存储于堆中的对象里面,当前类某对象从创建到销毁的这段时间,即为该成员变量的生命周期。

2. 修饰符不同

  • 局部变量可被 final 所修饰,但不能被访问控制修饰符及 static 所修饰。
  • 成员变量可被 final 修饰,也可被访问控制修饰符及 static 所修饰。

3. 默认值不同

  • 局部变量不会自动赋值,使用之前需要初始化赋值,否则编译器会报错。
  • 成员变量会自动赋值该类型的默认值(例外:被 final 修饰的成员变量必须显式地赋值)。