[改善Java代码]性能考虑,数组是首选
建議60:性能考慮,數組是首選
一、分析?
數組在實際的系統開發中使用的越來越少,我們通常只有在閱讀一些開源項目時才會看到它們的身影,在Java中它確實沒有List、Set、Map這些集合使用起來方便,但是在基本類型處理方面,數組還是占優勢的,而且集合的底層也是通過數組實現。?
二、場景?
比如對一個數據集求和的計算:
1 //對數組求和 2 public static int sum(int[] datas){ 3 int sum = 0; 4 for(int i = 0; I < datas.length; I++){ 5 sum += datas[i]; 6 } 7 return sum; 8 }對于一個int類型的數組求和,取出所有元素的數組元素并相加,此算法中如果是基本類型則使用數組效率最高,使用集合效率次之.
注意才相加求和的運算中,做了一個拆箱動作(sum += datas.get(i);?),這對于性能瀕于臨界的系統是比較危險的。?
在初始化List的時候,要進行裝箱動作,把一個int類型包裝成一個Integer對象,雖然有整形池在,但不在整型池范圍都會產生一個新的Integer對象。??
眾所周知,基本類型是在棧內存操作的,而對象則是在堆內存中操作的。棧內存的特點是速度快,容量小;堆內存的特點是速度慢,容量大(從性能上講,基本類型的處理占優勢)。
其次,在進行求和計算(或者其他遍歷計算) 時要做拆箱動作,因此無謂的性能消耗也就產生了.
三、建議?
性能要求較高的場景中,使用數組替代集合。在實際測試中發現:對于基本類型進行求和計算時,數組的效率是集合的10倍。
?
轉載于:https://www.cnblogs.com/DreamDrive/p/5418528.html
總結
以上是生活随笔為你收集整理的[改善Java代码]性能考虑,数组是首选的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 利用http上传协议(表单提交上
- 下一篇: Cocoapods的安装和使用