局部变量和成员变量的区别
区别:
1)书写位置不同
成员变量:类中方法外
局部变量:在方法定义中或者方法声明上
2)内存中的位置不同
成员变量:在堆内存中
局部变量:在栈内存中
3)生命周期不同
成员变量:随着对象的创建而存在,随着对象创建完毕,等待垃圾回收器回收对象(空闲时进行回收)才能消失
局部变量:随着方法调用存在,随着方法调用结束而消失
4)初始化不同:
成员变量:在堆内存中由系统默认初始化(根据成员变量的类型进行默认初始化:String:null int:0)
局部变量: 无论是先定义还是直接初始化,必须在使用之前初始化,否则报错!