1、成员变量和局部变量的不同点:
(1)位置不同
成员变量:在类中,方法外
局部变量:方法中
(2)作用域不同
成员变量:整个类
局部变量:方法或语句内
(3)默认值不同
成员变量:有默认值(不赋初值不会报错)
局部变量:无默认值,赋值后才能使用(不赋初值会报错)
(4)内存位置不同
成员变量:堆内存
局部变量:栈内存
(5)生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
2、堆栈:java将内存划分为两种:堆内存和栈内存
(1)堆内存:堆内存用来存放由new创建的对象和数组。堆中的对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定,具有很大的灵活性。
(2)栈内存:所有的方法运行的时候进入的内存,当没有调用时就被回收,缺乏灵活性
3、类变量、成员变量和局部变量
java中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在jvm的方法区、堆内存和栈内存中。
每个人都会有一段异常艰难的时光 。
生活的压力 , 工作的失意 , 学业的压力。
爱的惶惶不可终日。
挺过来的 ,人生就会豁然开朗。
挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。
——杨绛