变量进阶
java中的变量可分为成员变量和局部变量
成员变量分为
实例变量和类变量
局部变量分为
- 形参,在方法签名中定义的
- 方法局部变量
- 代码块局部变量
在类中定义的变量
类变量:有static修饰,当类创建时便被分配空间,可以这样认 为类变量是与类绑着的,与类共存亡!!!
实例变量:无static修饰,当实例被创建时才得到内存空间,可以说是与实例共存亡
局部变量
方法局部变量、形参:在对应的方法栈中,作用范围仅限于方法内,与方法共存亡
代码块局部变量:作用范围仅限于代码块中
由于在程序中成员变量会占用较大的内存空间,以及降低程序的内聚性所以我们应当谨慎使用内存。
在如下情况使用成员变量
- 如果变量是描述某个类或对象的固有信息的
- 在某个类中需要以一个变量来保存或者实例运行时的状态信息
- 如果某个信息需要在某个类的多个方法共享的
还有最后一个注意点
实例对象对类变量的调用,实际上是通过访问类来对类变量进行访问,因此在调用类变量时我们应尽可能的用类调用而不是用实例对象调用,为避免造成歧义。