优化JAVA程序的执行效率和性能

StringBuffer或者StringBuilder(线程不安全)来拼接或者操作

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


避免在循环条件中使用复杂表达式

    在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。

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'

        常量字符串并不需要动态改变长度。


在字符串相加的时候,使用 ' ' 代替 " ",如果该字符串只有一个字符的话


我摘呢一下我能够理解的,下面是我摘自的地址

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



转载于:https://my.oschina.net/u/1024333/blog/292959

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值