將乙個boolean
值與乙個
true
比較是乙個恒等操作
(直接返回該
boolean
變數的值
). 移走對於
boolean
的不必要操作至少會帶來
2個好處:
1)**執行的更快
(生成的位元組碼少了
5個位元組);
2)**也會更加乾淨
。例子:
public class ueq
}更正:
class ueq_fixed}
當處理字串的相加時,常見的寫法是:
..
string str1 = "hello";
string str2 = "welcome to world";
string str3 = str1 + ", " + str2 +"!";
system.out.println(str3);
很多人都知道,這樣的**效率是很低的,因為
string
是用來儲存字串常量的,如果要執行「+
」的操作,系統會生成一些臨時的物件,並對這些物件進行管理,造成不必要的開銷。
如果字串有連線的操作,替代的做法是用
stringbuffer
類的方法,它的預設建構函式和
的實現是:
public stringbuffer()
int len =str.length();
int newcount = count + len;
if(newcount
>value.length)
expandcapacity(newcount);
// 擴充容量
str.getchars(0, len, value, count);
count = newcount;
return this;
}
當字串的大小超過預設
16時,**實現了容量的擴充,為了避免物件的重新擴充套件其容量,更好的寫法為:
stringbuffer buffer = new stringbuffer(30);
// 分配指定的大小。
字串的分析在很多應用中都是常見的。使用
indexof()
和substring()
來分析字串容易導致
stringindexoutofbound***ception
。而使用
stringtokenizer
類來分析字串則會容易一些,效率也會高一些。
例子:public class ust }}
例子:public class str
}更正:
將乙個字元的字串替換成
' 'public class str
}用乙個字元作為引數呼叫
startswith()
也會工作的很好,但從效能角度上來看,呼叫用
string api
無疑是錯誤的
!例子:
public class pcts
} }
更正將'startswith()' 替換成'charat()'.
public class pcts }}
Java程式效能優化 1
1.優化概述 設計調優是對系統在巨集觀層面上 質 的優化。優化,jvm優化都是對系統微層面上 量 的優化。設計優化的乙個顯著特點是,它可以規避某乙個元件的效能問題,而非改良該元件的實現。比如 系統在元件a需要等待某事件e才能觸發乙個行為。如果元件a通過迴圈監控不斷檢測事件e是否發生,其監控行為必須會...
Java程式效能優化20
確定 stringbuffer的容量 stringbuffer的構造器會建立乙個預設大小 通常是16 的字元陣列。在使用中,如果超出這個大小,就會重新分配記憶體,建立乙個更大的陣列,並將原先的陣列複製過來,再丟棄舊的陣列。在大多數情況下,你可以在建立stringbuffer的時候指定大小,這樣就避免...
優化程式效能
編寫高效程式需要兩個活動 第一,我們必須選擇一組最好的演算法和資料結構 第二,我們必須編寫出編譯器能夠有效優化以轉換成高效可執行 的源 這裡,我們主要講述後者。首先,我們討論一下為什麼要編寫高效程式。不難想象,如果本來要用 天執行完的程式,經過優化只需要 天就可執行完,這是一件多麼令人振奮的 事啊。...