成员变量(实例变量)&局部变量区别:

(1)作用域
成员变量:整个类内部可见
局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)
(2)存储位置
成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中,作用的范围结束,变量空间会自动释放。
(3)初始值
成员变量:无需显式初始化,系统会自动对其进行默认初始化。
局部变量:使用前必须赋值。

java允许局部变量和成员变量重名,局部变量会覆盖成员变量的值

成员变量(实例变量)&静态变量(类变量)区别:

A:调用方式
静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用(不推荐)。
这个变量属于类。
成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。
B:存储位置

成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

C:生命周期

成员变量随着对象的创建而存在,随着对象的回收而释放。

静态变量随着类的加载而存在,随着类的消失而消失。

D:与对象的相关性
静态变量是所有对象共享的数据。
成员变量是每个对象所特有的数据。

 

 




(1)作用域
成员变量:整个类内部可见
局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)
(2)存储位置
成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中,作用的范围结束,变量空间会自动释放。
(3)初始值
成员变量:无需显式初始化,系统会自动对其进行默认初始化。
局部变量:使用前必须赋值。

java允许局部变量和成员变量重名,局部变量会覆盖成员变量的值

成员变量(实例变量)&静态变量(类变量)区别:

A:调用方式
静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用(不推荐)。
这个变量属于类。
成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。
B:存储位置

成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

C:生命周期

成员变量随着对象的创建而存在,随着对象的回收而释放。

静态变量随着类的加载而存在,随着类的消失而消失。

D:与对象的相关性
静态变量是所有对象共享的数据。
成员变量是每个对象所特有的数据。