成员变量&局部变量(Java)

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

☞ 声明位置不同

 成员变量:在类中,方法体外

 局部变量:在方法体中

☞ 初始化不同

 成员变量:有默认初始值

局部变量:没有初始值

☞ 内存中存储的位置不同

 成员变量:存在堆内存中

 局部变量:存在栈内存中

☞ 权限修饰符使用

 成员变量:可以使用权限修饰符

 局部变量:不可以使用权限修饰符

☞ 生命周期不同

成员变量:随着对象的销毁而销毁(生命周期更长;因为入口方法弹栈后,存放对象地址值的变量销毁了,堆内存中的对象成了”孤儿“,且堆内存中的对象空间是由GC垃圾回收机制回收的,GC回收的时间不确定,导致了成员变量的生命周期比局部变量长)

局部变量:随着方法的弹栈而释放

posted @ 2020-11-13 10:03  娜豆  阅读(45)  评论(0编辑  收藏  举报