成员变量和局部变量的区别?
成员变量:直接定义在类中,方法外面。又称之为字段(Field)
局部变量:除了成员变量,其他都是局部变量,具体存在于三个地方
- 方法内
- 方法的形
- 代码块中(一对花括号)
1. 初始值
- 成员变量:默认是有初始值的,不同类型的初始值,如下图
- 局部变量:没有初始值,所以必须手动先初始化才能使用
2. 作用域
- 成员变量:在所定义的类中都有效
- 局部变量:从开始定义的位置开始,只能在自己所在的花括号内有效
3. 生命周期
- 成员变量:**存储在堆内存中**,随着对象的销毁而销毁
- 局部变量:**存储在栈内存中**,随着所定义方法的调用结束而销毁
- 局部变量存储在方法中,每次调用方法都会在栈空间开辟一块内存空间——栈帧,方法调用结束,栈帧就被销毁了,内存中的存储的变量数据也销毁了