成员变量与局部变量的区别
- 成员变量定义在类中,整个类中都能访问,与具体所在的位置无关。
- 局部变量定义在方法、语句、局部代码块中,旨在所属的区域有效,而且必须是先定义后使用,先赋初值后使用。
public class Student{
public void who(){
return name;
}
private String name;//成员变量----属性
public void eat(){
String food="rice";//局部变量,只在此范围内使用
}
}
- 成员变量存在于对内存的对象中堆内存中的对象大小可以任意,并允许在运行时进行调整,所以访问查找的效率比较低。
- 局部变量存在于栈内存中,可以快速定位,但是大小是限定的。
- 成员变量随着对象的创建而存在,随着对象的表示而消失。
- 局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
- 成员变量都有默认初始值。数值类型默认为0;字符型默认为"\0";布尔类型默认为"false";引用类型默认为"null"。
- 局部变量没有默认初始值。