Loading

成员变量与局部变量的区别

(1)声明的位置不同

成员变量:类中方法外

局部变量:(1)方法的()中,即形参(2)方法体的{}的局部变量(3)代码块{}中

(2)存储的位置不同

成员变量:

​ 如果是静态变量(类变量),在方法区中

​ 如果是非静态的变量(实例变量),在堆中

局部变量:栈

(3)修饰符不同

成员变量:4种权限修饰符、static等多种修饰符

局部变量:不能有任何修饰符

(4)作用域

成员变量:

​ 如果是静态变量(类变量),在本类中随便用,在其他类中使用“类名.静态变量"

​ 如果是非静态的变量(实例变量),在本类中只能在非静态成员中使用,在其他类中使用“对象名.非静态的变量"

局部变量:有作用域,出了作用域就不能使用

(5)生命周期

成员变量:

​ 如果是静态变量(类变量),和类相同,随着类的加载而分配,随着的类的卸载才消亡。

​ 如果是非静态的变量(实例变量),和所属的对象相同,每一个对象是独立。对象创建时,才在堆中分配内存,随着对象被垃圾回收而消亡。

局部变量:每次方法调用执行都是新的,而且仅在作用域范围内有效。

posted @ 2022-05-09 20:06  Zhbeii  阅读(141)  评论(0)    收藏  举报