Posted on 2015-03-11 09:33
朱杰兵 閱讀(120)
評論(0) 編輯 收藏
String,StringBuffer和StringBuilder 這個問題也比較常見。在進行字符串拼接處理的時候,String通常會產(chǎn)生多個對象,而且將多個值緩存到常量池中。例如:
String a=“a”;
String b=“b”;
a=a+b;
這種情況下jvm會產(chǎn)生“a”,“b”,“ab”三個對象。而且字符串拼接的性能也很低。因此通常需要做字符串處理的時候盡量采用StringBuffer和StringBuilder來。
ArrayList和LinkedList的選擇 這個問題比較常見。通常程序員最好能夠對list的使用場景做出評估,然后根據(jù)特性作出選擇。ArrayList底層是使用數(shù)組實現(xiàn)的,因此隨機讀取數(shù)據(jù) 會比LinkedList快很多,而LinkedList是使用鏈表實現(xiàn)的,新增和刪除數(shù)據(jù)的速度比ArrayList快不少。
包裝類和基本類型的選擇 在代碼中,如果可以使用基本數(shù)據(jù)類型來做局部變量類型的話盡量使用基本數(shù)據(jù)類型,因為基本類型的變量是存放在棧中的,包裝類的變量是在堆中,棧的操作速度比堆快很多