java 学习——局部变量和和成员变量
成员变量和局部变量的区别:
- 定义的位置不同,局部变量在方法中定义,成员变量在类体中、方法外定义
- 局部变量必须显式初始化才能使用,成员变量可以只声明不赋值,jvm会对其进行默认初始化。当然也可以显式的赋值。
- 局部变量的作用域在所在的方法中,成员变量的作用域是整个类的方法中使用。
- 被访问的优先级不同。如果成员变量和局部变量同名,那么局部变量被访问的优先级高于成员变量,就近原则。
- 局部变量的内存在栈中,成员变量的内存在对象中,每创建一个对象就会被分配一次。
- 生命周期不同,当方法结束的时候,方法在栈中分配的所有的局部变量的内存会被回收。而成员变量的生命周期依赖于所在的对象,对象被回收了,那么对象中的属性就被一并回收了。
相同点:
- 都是变量,命名规范一致。
- 变量的数据类型都可以是java支持的任意类型。 byte short int long float double char boolean
数组[] int[] class