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

321 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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

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

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

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

作用上的区别

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

生命周期区别

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

初始值的区别

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

(附)对比记忆图 在这里插入图片描述