成员变量(属性)与局部变量
1 声明位置不同
成员变量:类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中),
即在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
2 内存位置不同
成员变量:堆内存的对象中(而static修饰的放在方法区中的静态区)
局部变量:栈内存的方法中
3 生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的运行而存在,随着方法的弹栈而消失
4 初始化不同
成员变量:有默认初始值
整型(byte、short、int、long):0
浮点型(float、double):0.0
字符型(char):0(或‘\u0000’)
布尔型(boolean):false
引用数据类型(类、数组、接口…):null
局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错