代码常见错误

常见错误
不符合团队代码、设计规范
循环的一次操作中多次调用iterator.next()
数据库、流等资源未关闭
HttpSession内存储的对象 不可序列化
空指针引用
可能的空指针引用
正则表达式格式错误
PreparedStatement的参数设置/ ResultSet内容访问,从索引0开始
忽略方法返回值, 如 String a=.. ; a.trim();
使用new Boolean(true)
调用 new String(string )
使用+连接String
调用 gc资源回收 代码
自增量的覆盖 i=i++;
Serializable对象包涵Non-transient non-serializable对象
Initialization circularity 循环初始化过程
Date 类型set函数的参数范围错误, 月份为[0,11]...
绝对路径的硬编码 File("/home/dannyc/deployment");
java.lang.Integer、 java.lang.Float、或String对象 比较 使用==或者 !=
测试浮点数的相等性,使用if ( Math.abs(x - y) < .0000001 )
数组对象比较使用equals, 应使用 java.util.Arrays.equals(Object[], Object[]).
对象定义了equal、 tostring、或者hashcode方法

jsp错误

不良习惯

不符合Camel命名原则
重复代码
三值逻辑
无用的代码流程控制
非null值的null判断, null比较
调用 String.equals("")
String对象上调用toString()
整数除的结果转换为float/double
不需要的instanceof判断 / 没必要的对象cast操作
无用、未用的 field, parameters, local variable
从未被调用的方法
整数是否为奇数判断 x % 2 == 1
方法返回null
调用subString(0)
PreparedStatement使用非final的sql String 对象
public finalize()

常用的metics
McCabe 复杂性
代码嵌套深度
代码圈复杂性

建议
Comparator实现 Serializable接口
考虑缓存常用的值,比如关于常量的计算值
避免深层次 if 嵌套语句

解决??
严格执行编程规范
使用优秀、经过验证的框架、可重用包、思想
代码评审 / 结对编程 / 代码质量自动检查工具
简单编程
测试驱动开发

参考:
findbugs: http://findbugs.sourceforge.net/
metrics: http://metrics.sourceforge.net/
pmd: http://pmd.sourceforge.net/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值