成员变量

存在于堆内存中,和类一起创建

  • 实例变量(不以static修饰)

实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例变量的作用域与对应实例的生存范围相同

  • 类变量(以static修饰)

类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同

局部变量

存在于栈内存中,当方法执行完成,回收内存

  • 形参(方法签名中定义的变量)

在定义方法签名时定义的变量,形参的作用域在整个方法中都有效

  • 方法局部变量(在方法内定义)

在方法体内定义的局部变量,它的作用域是从定义该变量的地方生效,到该方法结束时失效

  • 代码块局部变量(在代码块内定义)

这个局部变量的作用域从定义该变量的地方生效,到该代码结束时失效。