java中的变量分为成员变量和局部变量,它们分别是
成员变量:
- 成员变量是在类的范围里定义的变量。
- 成员变量有初始值,初始值为变量类型的默认值。
- 没有被static修饰的成员变量存储在对象所在的堆内存中,生命周期和对象相同。
- 被static修饰的成员变量也叫类变量,类变量存储在方法区中,生命周期和当前类相同。
局部变量:
- 局部变量是在方法中定义的变量。
- 局部变量没有默认初始值。
- 局部变量存储于栈内存中,作用的范围结束,变量空间会自动释放。
总结:全局变量和局部变量的区别
- 作用域不同:成员变量作用域在整个类,局部变量作用域是在其所在的方法。
- 存储位置不同:加static的成员变量存储位置在方法区,不加static的成员变量存储位置是堆,局部变量存储位置是栈。
- 有无默认值:成员变量有默认初始值,局部变量没有。
- 声明周期不同:加static的成员变量声明周期和类相同,不加static的成员变量声明周期与当前对象相同,局部变量生命周期和其所在方法相同。