優化JAVA程序的執行效率和性能

StringBuffer或者StringBuilder(線程不安全)來拼接或者操做

字符串就比直接使用String效率高。


避免在循環條件中使用複雜表達式

    在不作編譯優化的狀況下,在循環中,循環條件會被反覆計算,若是不使用複雜表達式,而使循環條件值不變的話,程序將會運行的更快。java

import java.util.Vector;
class CEL {
     void method (Vector vector) {
      /**   for (int i = 0; i < vector.size (); i++)   // Violation
       *      ; // ...
       **/
       int size=vector.size();
       for(int i=0;i<size;i++){
           //...
       }       
     }
}


爲'Vector' 和 'Hashtable'定義初始大小

        JVM爲Vector擴充大小的時候須要從新建立一個更大的數組,將原原先數組中的內容複製過來,最後,原先的數組再被回收。可見Vector容量的擴大是一個頗費時間的事。一般,默認的10個元素大小是不夠的.你最好能準確的估計你所須要的最佳大小。

public Vector v = new Vector(20);  
public Hashtable hash = new Hashtable(10);


在finally塊中關閉Stream

        程序中使用到的資源應當被釋放,以免資源泄漏。這最好在finally塊中去作。無論程序執行的結果如何,finally塊老是會執行的,以確保資源的正確關閉。數組

        在Java 7 中能夠使用try-with-resource語句。安全


使用'System.arraycopy ()'代替經過來循環複製數組 

public class IRB
{
     void method () {
         int[] array1 = new int [100];
         for (int i = 0; i < array1.length; i++) {
             array1 [i] = i;
         }
         int[] array2 = new int [100];
         for (int i = 0; i < array2.length; i++) {
             array2 [i] = array1 [i];                  // Violation
         }
     }
}

更正:優化

public class IRB
{
     void method () {
         int[] array1 = new int [100];
         for (int i = 0; i < array1.length; i++) {
             array1 [i] = i;
         }
         int[] array2 = new int [100];
         System.arraycopy(array1, 0, array2, 0, 100);
     }
}


對於常量字符串,用'String' 代替 'StringBuffer'

        常量字符串並不須要動態改變長度。ui


在字符串相加的時候,使用 ' ' 代替 " ",若是該字符串只有一個字符的話


我摘呢一下我可以理解的,下面是我摘自的地址spa

http://www.dewen.org/q/2059/%E6%80%8E%E4%B9%88%E4%BC%98%E5%8C%96JAVA%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%89%A7%E8%A1%8C%E6%95%88%E7%8E%87%E5%92%8C%E6%80%A7%E8%83%BD%EF%BC%9F線程

相關文章
相關標籤/搜索