官术网_书友最值得收藏!

細節19 減少開銷——掌握變量的使用原則

在進行Java程序開發時,需要定義很多變量以完成程序的功能,這些變量包括普通成員變量、靜態成員變量以及在方法體或代碼塊內定義的局部變量,這些變量的使用將直接影響著整個系統的性能,為此,需要了解和掌握這些變量及其使用原則。

1.了解和掌握變量

· 靜態成員變量

靜態成員變量也稱為類變量,使用static關鍵字修飾,該變量在類加載時,就分配了內存并進行了初始化,并被該類每個實例所共享,只要類被加載了,該變量就會一直駐留在內存中,直到退出程序,才會釋放類變量所占用的內存空間。

· 普通成員變量

普通成員變量也稱為實例變量,這種變量在創建類的實例時,系統自動為其分配內存和進行初始化,并且只屬于該實例,不能被多個實例共享,而且會隨著實例的創建而產生,隨著實例的銷毀而銷毀。

· 局部變量

局部變量是指在方法或代碼塊中定義的變量,該變量在方法被調用或代碼塊被執行時,才分配內存,并隨著方法調用結束或代碼塊執行結束而釋放所占用的內存空間。

2.變量的使用原則

變量的使用主要應考慮以提高系統的性能為原則,所以,在程序中使用變量時應遵循以下原則:

· 盡可能優先使用局部變量

由于局部變量在方法被調用或代碼塊被執行時才被分配內存空間,并且在方法調用結束或代碼塊執行結束時,就會釋放所占用的內存空間,該變量在內存中駐留的時間最短,而且不需要進行垃圾回收,因此可以大大提高系統的性能。

· 能用實例變量盡量不要用類變量

類變量在類加載時就被分配了內存空間并進行了初始化,而且直到退出程序時才會釋放所占用的內存空間,其間一直會駐留在內存中,而實例變量則是在創建類的實例時才被分配內存空間,在實例被銷毀時就會被JVM的垃圾回收器回收,釋放所占用的內存空間。

說明

使用哪種變量并不是絕對的,例如,某些信息要求被類的多個實例共享,這時類變量就是最佳的選擇,即使類變量在程序執行過程中會一直駐留在內存中。

主站蜘蛛池模板: 晋江市| 德庆县| 嘉峪关市| 城口县| 永康市| 贵南县| 汶上县| 理塘县| 峨边| 化州市| 宜君县| 临漳县| 武穴市| 玛多县| 浪卡子县| 岫岩| 江都市| 金门县| 余干县| 富蕴县| 甘谷县| 陕西省| 肇庆市| 石城县| 睢宁县| 峨山| 赞皇县| 丰台区| 新和县| 海口市| 金溪县| 邢台县| 荔浦县| 门头沟区| 年辖:市辖区| 韶关市| 井陉县| 灵宝市| 古浪县| 漳平市| 华池县|