代码检测工具(四)JAVA代码静态检测之PMD
来源:互联网 发布:python 电商b2b2c系统 编辑:程序博客网 时间:2024/05/21 08:41
http://www.cnblogs.com/doit8791/p/4106857.html
http://pmd.sourceforge.net/pmd-4.3.0/rules/index.html
PMD相关规则译文:http://blog.csdn.net/jack0511/article/details/5260751
规则设置:http://blog.sina.com.cn/s/blog_4e0c21cc0100yata.html
今天再次想启动Java代码静态检测工具的利用问题,主要再次尝试用了PMD,发现不少代码编码规范问题和好的代码建议,并学到不少自己之前没有注意到的Java方便的基础知识,感觉很不错,把相关明白的好的规则回忆总结下,再以后编码过程中要把随时利用代码静态检查工具,用好代码静态检查工具养成习惯。今天用到的PMD检查规则如下:
If表达式必须使用{},无论有多少语句
While循环必须使用{},无论有多少语句
IfElse表达式必须使用{}
For循环语句必须使用{}
如果方法返回boolean,那么注意避免不必要的if..then..else语句
避免if语句嵌套过深(会导致代码可读性降低)
解决办法:建议if嵌套不要超过2层。使用工具方法封装更多的if语句或者把嵌套的if表达式放到同一个层次中。
忽略大小写进行字符串比较时,使用String.equalsIgnoreCase,不要使用String.toLowerCase.前者有更好的性能而且还可以避免后者带来的本地化问题
避免方法级的同步
块级别的同步可以确保内含真正需要同步的代码。
使用集合类的isEmpty方法
java.util.Collection类的isEmpty方法提供判断一个集合类是否包含元素。不要是使用size()和0比较来重复类库已经提供的方法。 这条原则告诉我们一个普遍的原则:复用。尽量复用,充分利用已有的资源,不要重复自己(DRY)。比如apache提供了大量工具类供我们使用,我们没有必要再自己写了。
没有使用的代码
就一个原则:没有使用的就去掉,保持代码的干净、整洁。
没有使用的代码包括:
Ø 没有使用的私有成员
Ø 没有使用的本地变量
Ø 没有使用的私有方法
Ø 没有使用的方法参数(参数定义了,但是方法内没有使用此参数)
构建StringBuffer或StringBuilder时,如果知道长度,请指定,这样性能更好
不指定,则默认长度是16,这样当长度不够时,就会有扩容的动作了。
如果本地变量只被赋值一次,那么把它声明为Final
如果方法参数从来不会被重新赋值,那么把它声明为Final
如果想由数组构建List,请使用Arrays.asList
数组复制,请使用System.arraycopy,别用循环
""+123的方式把数字转换为String,不够高效
示例代码:
String s = "" + 123; // bad
String t = Integer.toString(456); // ok
避免代码中出现各种"空"的语句
空Catch,空If,空while,空try,空finally,空switch,空Synchronized块,空static块
0 0
- 代码检测工具(四)JAVA代码静态检测之PMD
- 代码检测工具(四)静态代码检查工具-PMD
- myeclipse2014 java代码检测工具安装(Find Bugs/PMD/Checkstyle)
- java进阶(四)------java编程规范---代码质量检测工具FindBugs、PMD和CheckStyle的安装
- Jenkins+PMD构建自动化静态代码检测
- Java代码检测工具PMD规则集翻译合集
- Java代码质量检测评估工具-PMD
- 静态代码检测工具对比(Java)
- PMD-java代码静态分析工具
- 代码检测工具(一)FindBugs、PMD和CheckStyle概况、安装
- Jenkins+maven+pmd对java代码进行静态代码分析
- Checkstyle, FindBugs, PMD, VisualVM四种代码检测工具的比较与相关心得
- 静态代码检查工具-PMD
- 静态代码检查工具-PMD
- 静态代码检测工具Cpplint
- Coverity代码静态检测工具
- Cpplint代码静态检测工具
- [转] Java代码质量检测评估工具-PMD
- Spring学习经典
- 文章标题
- MySQL 性能优化的最佳20多条经验分享
- Android自定义View的实现方法,带你一步步深入了解View(四)
- 获取本地文件的大小
- 代码检测工具(四)JAVA代码静态检测之PMD
- swift2.0笔记3
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)
- Android变色状态栏的实现
- 299. Bulls and Cows
- tableView学习
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- 添加ubuntu用户sudo权限