Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

细节19 减少开销——掌握变量的使用原则

在进行Java程序开发时,需要定义很多变量以完成程序的功能,这些变量包括普通成员变量、静态成员变量以及在方法体或代码块内定义的局部变量,这些变量的使用将直接影响着整个系统的性能,为此,需要了解和掌握这些变量及其使用原则。

1.了解和掌握变量

· 静态成员变量

静态成员变量也称为类变量,使用static关键字修饰,该变量在类加载时,就分配了内存并进行了初始化,并被该类每个实例所共享,只要类被加载了,该变量就会一直驻留在内存中,直到退出程序,才会释放类变量所占用的内存空间。

· 普通成员变量

普通成员变量也称为实例变量,这种变量在创建类的实例时,系统自动为其分配内存和进行初始化,并且只属于该实例,不能被多个实例共享,而且会随着实例的创建而产生,随着实例的销毁而销毁。

· 局部变量

局部变量是指在方法或代码块中定义的变量,该变量在方法被调用或代码块被执行时,才分配内存,并随着方法调用结束或代码块执行结束而释放所占用的内存空间。

2.变量的使用原则

变量的使用主要应考虑以提高系统的性能为原则,所以,在程序中使用变量时应遵循以下原则:

· 尽可能优先使用局部变量

由于局部变量在方法被调用或代码块被执行时才被分配内存空间,并且在方法调用结束或代码块执行结束时,就会释放所占用的内存空间,该变量在内存中驻留的时间最短,而且不需要进行垃圾回收,因此可以大大提高系统的性能。

· 能用实例变量尽量不要用类变量

类变量在类加载时就被分配了内存空间并进行了初始化,而且直到退出程序时才会释放所占用的内存空间,其间一直会驻留在内存中,而实例变量则是在创建类的实例时才被分配内存空间,在实例被销毁时就会被JVM的垃圾回收器回收,释放所占用的内存空间。

说明

使用哪种变量并不是绝对的,例如,某些信息要求被类的多个实例共享,这时类变量就是最佳的选择,即使类变量在程序执行过程中会一直驻留在内存中。