java中的变量分为成员变量和局部变量,它们分别是
成员变量:
成员变量是在类的范围里定义的变量。成员变量有初始值,初始值为变量类型的默认值。没有被static修饰的成员变量存储在对象所在的堆内存中,生命周期和对象相同。被static修饰的成员变量也叫类变量,类变量存储在方法区中,生命周期和当前类相同。
局部变量:
局部变量是在方法中定义的变量。局部变量没有默认初始值。局部变量存储于栈内存中,作用的范围结束,变量空间会自动释放。
总结:全局变量和局部变量的区别
作用域不同:成员变量作用域在整个类,局部变量作用域是在其所在的方法。存储位置不同:加static的成员变量存储位置在方法区,不加static的成员变量存储位置是堆,局部变量存储位置是栈。有无默认值:成员变量有默认初始值,局部变量没有。声明周期不同:加static的成员变量声明周期和类相同,不加static的成员变量声明周期与当前对象相同,局部变量生命周期和其所在方法相同。