(1)如果方法中抛出异常,异常对象这儿用e标识,注意:log是日志打印对象。
禁止 简单地e.printStackTrace();
建议:log.info(e.printStackTrace());或throw e;
一定要记录下来或抛给上级。
(2)项目中坚决反对 system.out.println();因为性能会比较低,建议用log.info()记录打印。
(3) 项目中包括类或方法 若定义了一些变量,但一直未被使用,最好删除无用的变量。
(4)项目中废弃的代码建议删除。
(5)定义BigDecimal对象值。
禁止:BigDecimal bd1 = new BigDecimal(123.45);
建议:BigDecimal bd1=BigDecimal.valueOf(100.56);
(6)多线程启用,建议用start(),禁用run();
(7)字符串比较时,尤其是变量与常量比较时:
禁止:String str="123456";
str.equals("123456");
建议:"123456".equals(str);
因为str有可能为空。
(8)循环时
禁止:
int k = 0;
for(Iterator it = newValue.keySet().iterator(),it.hasNext(),k++){
};
建议:
int k=0;
Iterator it = newValue.keySet().iterator(),
while(it.hasNext()){
k++;
}
(9)集合判断是否为空
禁止:
List list=new ArrayList();
if(list!=null && list.size()>0){
}
建议:
List list=new ArrayList();
if(!list.isEmpty()){
}
(10) 禁止类中全局变量与方法中局部变量重名。
(11) 灵活运用 线程安全与不安全变量。
ArrayList(不安全) or LinkedList(不安全) Vector(安全)
HashMap(不安全) Hashtable(安全)
StringBuilder(不安全) StringBuffer(安全)
注意:不安全的效率高,安全的效率低。
(12) 类中的变量名若为public,最好改为private 类型,通过其set,get方法来获取变量名和为其赋值。
(13)类中无用的引用包建以删除。不用说你也懂得。
(14)常量变量名建议用大写表示。
禁用:public static fianl String status="123";
建议:public static final String STATUS="123";
(15)代码中的注释最好加上,为了你,也为了后来的小伙伴,我就不说了。
(16)类名、方法名、变量名建议起名符合'^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'
(17)声明数组
禁止:String str[];
建议:String []str;
(18)书写代码。
禁止:if(){};
建议:if(){
代码
}
(19)定义变量或方法时,关键字顺序:
1. Annotations
2. public
3. protected
4. private
5. abstract
6. static
7. final
8. transient
9. volatile
10. synchronized
11. native
12. strictfp
禁止:private final static STR="123";
建议: private static final STR="123";
(20)double,float禁止与int类型比较。
禁止:double d=123.45
if(d==0){
}
(21)代码中标识为@Deprecated的方法要删除。
(22)系统代码中有Myeclipse自动生成的@TODO标识最好也删除。
(其它) 首先是去掉重复计算,避免不必要的io,
重构并解耦代码,尽量减少同步锁。因为有锁就有可能等待,等待就等于慢。
把相关性强的东西组合到一个类里面。因为CPU访问内存的时候,会先找L1 L2等缓存,再找内存。而读取内存的时候,不会只读取那一个变量,而会读取那个变量附近的东西。如果你把相关性强的东西放在一个类,意味着缓存命中的概率更高。