java代码优化随笔(一)

来源:互联网 发布:java将双引号替换空格 编辑:程序博客网 时间:2024/06/12 11:37

一:不要盲目用自动拆装类

public static void main(String[] arg){
Long sum=0
L;
for(int i=0;i<10000;i++){
sum=sum+i;
}
System.out.println(i);
}

这种写法,结果正确,但计算时间会比预计长,因为Long是自动装箱类型,不是基本类型,在相加时需要new Long(),而新建对象大大增加了计算时间


二:避免使用finalizer,优先级低,在处理数据多时,可能等待被终结的对象的增加速度比终结速度还快,导致程序死掉,其次处理效率低。


三:封装的主要原因是:促使模块独立,完成解耦,有利于并行开发。


四:养成检查参数的有效性的习惯

在大多数方法中参数值都有某些限制,比如不能是NULL,书写时要有在方法体前检查参数的习惯,这样错误的出现是可预知的;否则会有以下危险:

1:方法处理过程中失败,出现令人费解的异常;(比较严重,异常不好理解但能知道是哪里错了)

2:方法可以正常的返回,但出现错误的计算结果;(很严重,结果错误,没有异常无从分析错误来源,只能对相关代码逐步审查)

3:方法可以正常返回,但让某个对象处于破坏状态,在将来某个不确定的时候,在某个不相关的点引发错误(爆炸,这种情况认栽,选择重写可能在决策上更有效)


五:重载注意点:不能通过访问权限、返回类型、抛出的异常进行重载;


六:慎用可变参数:可变参数相对容易引起错误

static void run(int...s){
int sum=100;
for (int str : s) {
sum/=str;
}
System.out.println("结果为:"+sum);
}

例如这个例子,传参中假如有0程序就有错误


七:for-each和传统的for循环:尽量使用for-each,书写更简洁,在嵌套循环时候不容易出错


八:需要精确计算(货币)的时候不要使用float和double他们会缺失精度,请使用int,long,BigDecimal。


九:引用类型尽量声明成接口的:

ArrayList<User> list = new ArrayList<User>();//
List<User> list = new ArrayList<User>();//这种方式更加灵活


十:做后期优化维护时,尽量不要进行全局的优化