程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA類和對象的使用技巧

JAVA類和對象的使用技巧

編輯:關於JAVA

剛在網上看到一篇關於Java性能調優的帖子,很是幫助,自己也用了十多年JAVA了,有些感同身受,這裡 引用那帖子結合自己的感受來談下

技巧1:盡量少用new來創建對象

因為用new來創建對象的實例時 ,構造函數鏈上的所有構造函數都會被依次調用,導致效率很低。其實我們可以用一些小技巧,比如復用已有 對象。比如說,一個類如果實現了Cloneable接口的話,可以調用這個類的對象的clone()方法來創建一個新 對象,這樣的對象不會調用任何類的構造函數。所以,這樣生成新對象的速度比調用任何類的構造函數要來的 快。

技巧2:盡量使用局部變量

如果學會JAVA虛擬機原理的話都知道,在調用方法的時候,傳 遞的參數以及調用的時候創建的臨時變量都是保存在棧(stack)上的,這種變量的創建速度快。而靜態變量 ,實例變量,都是創建在堆(heap)上的,這種變量的創建速度慢。

技巧3:盡量減少方法調用

面向對象提成盡量用方法調用來間接的訪問變量,而不是希望直接訪問變量,但是方法調用會有壓棧退棧等操 作,從而會影響方法效率。比如說用setter和getter來訪問變量比直接訪問變量的效率就低很多,但是往往用 方法來訪問變量更加有可讀性,所以我們應該在可讀性和效率之間進行權衡

技巧4:盡量使用 static,final,private

因為如果類級別被修飾為final,那麼這個類是不可被繼承的,類中的所有方法 也不可以被繼承的。那麼編譯器會進行優化,將其方法進行內聯,來提高效率。在方法級,如果某個方法被修 飾為static,final,private,則是不可以被覆蓋,所以JAVA無需要動態關聯,從而提高了效率

技巧5: 讓setter/getter也成為final

同樣,這樣做的目的就是讓編譯器知道這個方法是不可以被覆蓋,從而 將其轉為inline來提高效率。

技巧6:不要不必要的類轉型

比如A是B的父類,那麼從B到A就不 用轉型了。

技巧7:盡量重用String對象

比如對於字符串進行連接,操作時候,可以用 StringBuffer/StringBuilder來代替String ,因為String對象連接,操作會產生大量的新String對象,而系 統不僅要花費時間生成這些對象,還要最後對這些新生成的對象進行垃圾回收和清理。

技巧8:別過分 創建

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved