成员变量&局部变量(Java)
成员变量和局部变量的区别
☞ 声明位置不同
成员变量:在类中,方法体外
局部变量:在方法体中
☞ 初始化不同
成员变量:有默认初始值
局部变量:没有初始值
☞ 内存中存储的位置不同
成员变量:存在堆内存中
局部变量:存在栈内存中
☞ 权限修饰符使用
成员变量:可以使用权限修饰符
局部变量:不可以使用权限修饰符
☞ 生命周期不同
成员变量:随着对象的销毁而销毁(生命周期更长;因为入口方法弹栈后,存放对象地址值的变量销毁了,堆内存中的对象成了”孤儿“,且堆内存中的对象空间是由GC垃圾回收机制回收的,GC回收的时间不确定,导致了成员变量的生命周期比局部变量长)
局部变量:随着方法的弹栈而释放