一.HashTable是线程安全的,很多方法都是synchronized方法,而HashMap不是线程安全的,但其在单线程程序中的性能比HashTable要高。StringBuffer和StringBuilder类的区别也在于此,新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高。
二.for(int i=0;i<list.size();i++) 可以改写成for(int i=0;len=list.size();i<len;i++),减少计算次数,优化性能。
三.使用移位来替代乘法或者除法('a/b',仅适合2的n次方的情况)的操作,如:int a = num /8; 可以改写成int a = num >> 3;
四.尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在分配给该方法的栈(Stack)中,速度较快,其他变量,如静态变量,实例变量等,都在堆(Hea)中创建,速度较慢。
五.尽量使用System.arraycopy()代替通过循环来复制数组,可以提高速度。