一、实例变量

     定义在类中的变量成为实例变量,又称类的成员变量。具有默认的初始值,从属于类由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,能通过对象的引用来访问实例变量。

java多线程中,实例变量是多个线程的共享资源,在同步访问时可能出现的问题。

二、类变量

     类变量也称静态变量,用static关键字修饰。一个类的静态变量,所有由这类生成的对象都共用这个类变量,类装载时就分配存储空间。一个对象修改了变量,则所以对象中这个变量的值都会发生改变。

三、局部变量

     局部变量是方法中或者局部块中声明定义的变量或方法,没有默认初始值,赋值后才能使用。

  • 成员变量、局部变量和静态变量的区别


 成员变量

局部变量 

静态变量 

 定义位置

 类中、方法外

方法中或方法形式参数 

类中、方法外 

 初始化

 默认初始值

 无默认初始值,需赋值后才能使用

 默认初始值

 调用方式

 对象调用

 /

 对象调用或类名调用

 存储位置

 堆

 栈

 方法区

 生命周期

 与对象共存亡

 与方法共存亡

 与类共存亡