分享幾個進步Java機能的高功效法。本站提示廣大學習愛好者:(分享幾個進步Java機能的高功效法)文章只能為提供參考,不一定能成為您想要的結果。以下是分享幾個進步Java機能的高功效法正文
1.在主要的輪回裡,清除輪回終止斷定時的辦法挪用
for(int i=0; i<collection.size(); i++)
{
...
}
for(int i=0; i<collection.size(); i++)
{
...
}
調換為…
view plaincopy to clipboardprint?
for(int i=0;n=collection.size();i<n;i++)
{
...
}
2.平日,把與輪回index不相干的移到輪回的裡面
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/scaleA*scaleB;
}
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/scaleA*scaleB;
}
改成
double scale = scaleB/scaleA;
for(int i=0; terminal=x.length; i<terminal; i++){
X[i]=x[i]*scale;
}
2.字符串
清除字符串聯接
創立長字符串時,老是應用StringBuffter取代String
事後分派StringBuffer空間
StringBuffer sb = new StringBuffer(5000);
3.根本數據類型
在主要的輪回裡應用根本數據類型(int型數據平日比long/double型數據更快)
根本數據類型(Boolean,Integer,etc)的包裝類重要用在當傳遞的辦法參數必需是一個對象的援用時(而不是一個根本數據類型)
對一切的常量代數表達式應用static final潤飾符
一 使常量更輕易援用(編譯器事後盤算常量表達式)
4.異常
異常只用於單個真實的毛病前提
一 拋出一個異常和履行一個catch代碼塊消費是很高的(重要因為當創立一個異常時要取得線程棧的一個快照)
一 只當前提真的異常時才拋出一個異常
使編譯器和運轉時最優化,將幾個辦法挪用放在一個try/catch塊中,而不是為每一個辦法挪用完成幾個try/catch塊
5.基准
留意,一切這些技能會因分歧的平台和虛擬機而分歧
一 例如:在有些servlet容器內,經由過程一個OutputStream作為字節輸入會更快
一 在其它的容器內,經由過程一個PrintWriter輸入字符會更快
這些技能描寫的是最可移植的建議
你能夠須要運轉一些基准來斷定在你的平台上怎樣樣是最快的