Java代碼優化札記

避免在循環條件中使用複雜表達式


在不做編譯優化的情況下,在循環中,循環條件會被反覆計算。


爲HashMap等定義初始大小


HashMap等結構在擴容的時候需要耗費一定的資源,所以在定義時最好能夠估計所需的大小。


在finally中關閉stream


在finally塊中釋放資源stream,因爲不管程序執行的結果如何,finally總會執行。


使用system.arraycopy()代替通過循環賦值數組


設置getter/setter方法變成“final”

這樣編譯器會視爲內聯函數,所謂內聯函數就是指函數在被調用的地方直接展開,編譯器在調用時不用像一般函數那樣,參數壓棧,返回時參數出棧以及資源釋放等,這樣提高了程序執行速度。


不在循環中調用synchronized方法,將try/catch塊溢出循環


String和StringBuffer的使用取捨


使用條件操作符替代“if() return;else return;"


儘可能使用棧變量,訪問靜態變量和實例變量將會比訪問局部變量耗費更多的時間,調用方法時傳遞的參數以及在調用中創建的臨時變量都保存在棧中,速度較快。靜態變量,實例變量等,都在堆中創建,速度較慢。


儘量不要在循環體中實例化變量


HashMap,ArrayList,StringBuilder之於HashTable,Vector,StringBuffer,線程安全和效率









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章