局部变量和成员变量的区别:
1)在类中的位置不同
局部变量:在方法定义中或者是方法声明上的变量
成员变量:在类中,方法外定义的变量
2)在内存中的位置不同
局部变量:在栈内存中存储 跟方法有关系
成员变量:在堆内存中存储 跟类的对象有关系
3)生命周期不同
局部变量:随着方法的调用而存在,随着方法调用完毕而消失
成员变量:随着对象的创建而存在,随着对象的创建完毕,等待垃圾回收掉(GC)之后才消失
4)初始化不同
局部变量:在方法定义中或者方法声明上的变量,必须在使用之前进行数据初始化,否则“可能尚未出始化变量”
成员变量:跟对象有关系,在堆内存中,即使这个成员变量没有赋值,系统会根据变量的类型给这个变量进行默认初始化
class Variable{
int num2=10;
//show方法属于Variable类的成员方法(以后的方法:非静态方法)
//方法中定义
public void show(){
int num=100;
//int num;//局部变量:必须使用前赋值,否则报错!
System.out.println(num);
}
}
//测试类
class VariableDemo{
public static void main(String[] args){
//创建该类的对象
Variable v=new Variable();
v.show();
System.out.println(v.num2);//对象名.成员变量
}
}



