局部变量和成员变量区别

区别一:定义的位置不同

定义在类中的变量是成员变量

定义在方法中或者{}语句里面的变量是局部变量

区别二:在内存中的位置不同

成员变量存储在堆内存的对象中

局部变量存储在栈内存的方法中

区别三:生命周期不同

成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失(gc垃圾回收机制

局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同

成员变量因为在堆内存中,所有默认的初始化值

局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

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

 局部变量成员变量
定义位置 定义在函数(方法)内部 类中,方法的外面
默认值 无默认值,必须先赋值再使用 有默认值,同数组
作用范围 从定义位置开始到定义的代码块结束 本类中有效
明明冲突 在同一个作用范围,不允许两个局部变量重名 成员变量可与局部变量重名,以局部变量优先

class Cxk{ int a=1;

//成员变量

public void sum(){

//方法 int b=1;

//局部变量 } }

posted @ 2020-11-09 10:46  LvREN旅人  阅读(232)  评论(0)    收藏  举报