1.Try catch异常输出printStackTrace(),相当于直接打印到控制台,不利于后续排查错误,应该用Loggers来处理

2.异常处理应保留原始异常

3.将连接的字符串传递到日志记录方法也可能导致不必要的性能消耗,因为每次调用该方法时将执行级联,无论日志级别是否足够低以显示消息

4.IO资源应该在使用后关闭


5.Java7引入“<>”来减少泛型代码的冗长性。例如,不必在列表的声明和构造函数中声明列表的类型,现在可以使用<>来简化构造函数声明,编译器将推断该类型

6.在代码中不应该忽略中断异常

7.不要使用双构造初始化对象,容易让维护者迷惑且可能导致内存泄漏

8.工具类不应该有public的构造器,也就是工具类至少要定义一个non-public的构造器

9.公共的静态成员应该加上final来修饰

10.不应使用"BigDecimal(double)",因为浮点的不精确,可能使用BigDecimal(double)得不到期望的值,双精度问题。

11.compareTo可能返回不是具体的值(除0外),建议用 >0、<0、=0。(compareTo()是两个串对象比较大小,返回一个整数值,如果调用串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值)

12.不应声明变量,然后立即返回或抛出变量。

13.run() 和Runnable.run() 不应被直接调用

14.不要把代码都写在同一行,降低可读性

15.类变量不要设置为public,而是设为private,再提供get和set方法

16.@Transactional 注解只能作用到 public方法上

17.@RequestMapping注解应该指定HTTP请求方式

18.数据比较问题

19.比较字符串是否相等时,字符串字面值应该放在左边

20.方法可能放回null,却未做判空处理

21.给基本数据类型赋值前应该先做强制类型转换

22.集合或者映射的非空判断,建议统一用工具类判断

23.Switch语句末尾分支使用default,建议大于3种情况才使用switch,否则使用if-else

24.删除无用的私有成员变量,私用方法,局部变量等。没用到的尽量删去,用到再重新写。提高逻辑严谨,去掉冗余代码

网友评论