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

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

  ☞ 声明位置不同

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

                局部变量:在方法体中

   ☞ 初始化不同

                成员变量:有默认初始值

                局部变量:没有初始值

   ☞ 内存中存储的位置不同

                成员变量:存在堆内存中

                局部变量:存在栈内存中

    ☞ 权限修饰符使用

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

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

    ☞ 生命周期不同

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

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

你可能感兴趣的:(成员变量&局部变量(Java))