优化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线程

相关文章
相关标签/搜索