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