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

首先我们来看看什么是成员变量,什么是局部变量:

成员变量:Java中最小单位是class(类).所以,如果一个变量(属性)定义在类中,那么这个变量(属性)在类中的任意位置可以使用。是类的一部分。
局部变量:在方法中或是方法参数列表中的变量就是局部变量。因为这个变量只能在该方法中使用。离开该方法就不存在了。

成员变量与局部变量的区别:
定义的位置上区别

  1. 成员变量是定义在方法之外,类之内的。
  2. 局部变量是定义在方法之内。

作用上的区别

  1. 成员变量的作用是用于描述一类事物的公共 属性的。
  2. 局部变量的作用就是提供一个变量给方法内部使用而已。

生命周期区别

  1. 随着对象的创建而存在,随着对象的消失而消失。(对象存储在堆中)
  2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域那么马上从内存中消失。(成员变量在方法中,因为方法在栈中,所以成员变量在栈中)

初始值的区别

  1. 成员变量是有默认的初始值。
    数据类型 默认的初始值
    int 0
    float 0.0f
    double 0.0
    boolean false
    char ’ ’
    String(引用数据类型) null
  2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。

(附)对比记忆图
成员变量与局部变量的区别