一:不要盲目用自动拆装类
public static void main(String[] arg){
Long sum=0L;
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>();//这种方式更加灵活
十:做后期优化维护时,尽量不要进行全局的优化
十一:类的成员变量声明尽量注意,是否是共享变量,是否会引起线程不安全。