百度阿里腾讯最常考的Java面试题精选6--6.局部变量和成员变量的区别?

6.局部变量和成员变量的区别?

先贴一张图,说明成员变量和局部变量的位置
百度阿里腾讯最常考的Java面试题精选6--6.局部变量和成员变量的区别?

1.位置不同
成员变量在类中方法外,局部变量在方法中或方法声明上

2.内存中位置不同
成员变量随对象在堆内存中存储,局部变量随方法的调用存在于栈内存

3.生命周期不同
成员变量随着对象的创建而存在,消失而消失
局部变量随着方法的调用而存在,方法的结束而消失

4.作用域不同
成员变量在整个类中都可以使用,局部变量在所在方法中使用

5.初始化值不同
成员变量有默认值,对于基本数据类型默认值如下:

  • byte,short,int ,long:0
  • float,double:0.0
  • char: ‘\u0000’
  • boolean: false
  • 引用数据类型默认值为null
  • (被final修饰的成员变量必须显示的赋值)
  • 局部变量没有默认值,因此,局部变量使用前必须初始化

6.修饰符上面
成员变量可以被public,private,static修饰,局部变量不能被static修饰,两者都可以被final修饰