- 在类中的位置不同
成员变量——类中方法外
局部变量——方法内或者方法声明上 - 在内存中的位置不同
成员变量——堆内存
局部变量——栈内存
静态变量——方法区的静态区
- 生命周期不同
成员变量——随着对象的存在而存在,随着对象的消失而消失
局部变量——随着方法的调用而存在,随着方法的调用完毕而消失
静态变量——静态变量是随着类的加载而加载,随着类的消失而消失
- 初始化值不同
成员变量——有默认的初始化值
局部变量——没有默认的初始化值,必须先定义,赋值,才能使用
注意:成员变量和名称可以不可和局部变量一样呢?
答案当然是可以的,但是使用的时候要注意,先找小范围,再找大范围
关于成员变量默认初始化值
public class Test {
private int i;
private static int j;
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.i+"---------"+test.j);
}
}
输出:
0---------0