成员变量、静态变量和局部变量之间的区别
所属位置 | 内存中的位置 | 内存中出现的时间和生命周期 | 调用 | 初始化值 | |
---|---|---|---|---|---|
成员变量 | 成员变量属于对象,也称实例变量 | 堆内存 | 成员变量随着对象的创建而存在,随着对象的消失而 消失 | 成员变量只能通过对象调用 | 成员变量有默认的初始化值 |
静态变量 | 静态变量属于类,也称类变量 | 方法区的静态区 | 静态变量随类的加载而加载,随类的卸载而卸载 | 静态变量可以通过类名调用;也可以通过对象调用,但不推荐 | 静态变量有默认的初始化值 |
局部变量 | 局部变量在方法定义中或者方法声明中 | 栈内存 | 局部变量随着方法的调用而存在,随着方法的调用完毕而消失 | 调用方法的时候才有作用 | 局部变量必须赋值才能使用 |
案例:
public class Demo1 {
static int i=10; //静态变量
int j = 10; //成员变量
public void show(){
int k=10; //局部变量
}
}