首先我们来看看什么是成员变量,什么是局部变量:
成员变量:Java中最小单位是class(类).所以,如果一个变量(属性)定义在类中,那么这个变量(属性)在类中的任意位置可以使用。是类的一部分。
局部变量:在方法中或是方法参数列表中的变量就是局部变量。因为这个变量只能在该方法中使用。离开该方法就不存在了。
成员变量与局部变量的区别:
定义的位置上区别:
作用上的区别:
成员变量的作用是用于描述一类事物的公共 属性的。局部变量的作用就是提供一个变量给方法内部使用而已。生命周期区别:
随着对象的创建而存在,随着对象的消失而消失。(对象存储在堆中)局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域那么马上从内存中消失。(成员变量在方法中,因为方法在栈中,所以成员变量在栈中)初始值的区别:
成员变量是有默认的初始值。数据类型 默认的初始值
int 0
float 0.0f
double 0.0
boolean false
char ’ ’
String(引用数据类型) null局部变量是没有默认的初始值的,必须要先初始化才能使用。
(附)对比记忆图