提升java性能的基本方法

提升java性能的基本方法

1. 不要在循环条件中计算

如果循环中计算,则每循环一边就要计算一次,这会降低系统
效率如下代码:

//每次循环就算count*2
 while(i<count*2){
  //逻辑
 }

应该替换成:

int total=count*2;
 while(i<total){
 }

2. 尽可能把变量,方法声明为final static 类型

假设要讲阿拉伯数字转为中文数字,如下

public String toChineseNum(int num){
  //中文数字
  tring[] cns={"零","壹","贰","叁","肆","伍","陆"
  ,"柒","捌","玖"};
  return cns[num];
 }

每次调用该方法是都会重新生成一个cns数组,注意该数组不会改变,属于
不变数组,在这种情况下,吧他声明为类变量,并且加上final static修饰
会更合适,在类加载后就生成了该数组,每次方法调用则
不再重新生成数组对象了,这有助于提高系统的性能.

3. 缩小变量的范围

关于变量,能定义在方法内的就定义在方法内,能定义在一个循环
体内的就定义在循环体内,能放置在一个try…catch块内
的就放置在该块内,其目的就是加快GC的回收.

4. 频繁字符串操作使用StringBuilder或StringBuffer

虽然String的连接操作已经做了很多优化,但是在大量

的追加操作上StringBuilder或StringBuffer还是比”+”号的

5. 使用非线性检索

如果在ArrayList中存储了大量的数据,使用indexOf查找元素比
java.util.Collections.binarySearch的效率低很多,原因是
binarySearch是二分搜索法,而indexof使用的是逐个元素对比的方法.
注意:使用binarySearch搜索,元素必须进行排序,否则准确性就不可靠了

6. 覆写Exception的FillInStackTrace方法

fillStackTrace方法是用来记录异常时的栈信息的,这是非常
耗时的动作,若果我们在开发时不需要关注栈信息,则可以覆盖之.如下覆盖fillInStackTrace的
自定义异常会使性能提升10倍以上:

class MyException extends Extends{
  public Throwable fillInStackTrace(){
  return this;
  }
 }

7. 不建立冗余对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值