`

pmd检测出的代码效率的比较和总结【原创】

 
阅读更多
以下是我在检查项目pmd的时候积累下来的,和大家分享下,呵呵。
1:
Use equals() to compare strings instead of '==' or '!='
解释:
使用equals()比较,而不是字符串'=='或'!='
2:
String.indexOf(‘char’)的速度比String.indexOf(“字符串”)。
解释:
比如String.indexOf('d')的速度就比String.indexOf("d")要快

3:
Avoid if (x != y) ..; else ..;
解释:
pmd说避免把判断非摆在前面,这样会引起阅读混淆,要判断的话,就把 == 的放在前面,掉转下就好的,容易读和理解。

4:
x.equals("2"); // should be "2".equals(x)
that way if the String is null you won't get a NullPointerException, it'll just return false

解释:
如果参数在前面,如果参数是空的话,程序会抛出NullPointerException,所以
应该把确定的字符串放在前面,把参数放在括号里面


5
建议:Substitute calls to size() == 0 (or size() != 0) with calls to isEmpty()

意思是说对List类的if(list.size()==0),建议使用isEmpty()来操作

6
if (Integer.parseInt(newInput) == 0)
{
return true;
} else
{
return false;
}

没有必要为一个返回true和false的行为做if else 直接
eturn Integer.parseInt(newInput) == 0 就行了

7:
  public class Foo {
    public int foo() {
      int x = doSomething();
      return x;  // instead, just 'return doSomething();'
    }
  }

Avoid unnecessarily creating local variables


如果只是返回doSomething的返回值,就没必要在弄一个实体了


8:
String.trim()。长度()== 0是一种低效的方法来验证一个空字符串。


9:
public class Foo {
    private int x;  //Why bother saving this?
    public void foo(int y) {
     x = y + 5;
     return x;
    }
}


如果x只用于foo这个方法。那么。建议放在foo里面当局部变量不要做全局变量了

10:
用equals来判断好过 ==

11:
判空用isEmpty

12
private List<MenuFunction> menuFunctionList = new ArrayList<MenuFunction>();
而不要
private ArrayList<MenuFunction> menuFunctionList = new ArrayList<MenuFunction>();

好像是说更支持多态吧。我也不知道,感觉大吃小总比小吃小好。List吃Arraylist.

2
0
分享到:
评论
2 楼 ml365 2010-12-11  
francis.xjl 写道
第8个有更好的替代方案么?

第10个为什么呢?equal跟==是完全不一样的概念...这用什么要根据情况的吧.. .

呵呵,感谢您的回帖。第八个其实我也不是很明白。pmd检测出来我就改了。第十个的话,以后遇到字符串相等我就用equals咯!呵呵
1 楼 francis.xjl 2010-12-11  
第8个有更好的替代方案么?

第10个为什么呢?equal跟==是完全不一样的概念...这用什么要根据情况的吧.. .

相关推荐

    pmd-4.2.5 Java代码检测

    3. **防错功能**:PMD能检测出可能导致运行时错误的代码,如空指针异常、除零错误等,提前预防程序运行时的问题。 4. **性能优化**:PMD还能帮助识别潜在的性能瓶颈,例如不必要的对象创建、未正确关闭的资源等,...

    pmd代码检查工具使用

    PMD 是一个静态代码分析工具,主要用于检查 Java 代码的质量和可读性。下面是 PMD 的使用指南,包括安装、运行、规则配置和自定义规则等方面的内容。 安装和运行 PMD 可以通过命令行或在 Eclipse 中安装插件两种...

    阿里巴巴Java代码质量检测插件:p3c-pmd-2.1.1.jar

    3. **冗余代码检测**:识别并标记出重复的代码段,有助于代码的优化和重构。 4. **效率优化建议**:提供性能优化提示,如避免使用效率低下的数据结构或算法,减少不必要的计算等。 5. **安全问题扫描**:检查代码中...

    pmd代码规范工具

    **PMD代码规范工具详解** PMD是一款广泛应用于Java开发领域的静态代码分析工具,它的主要目的是在代码执行之前,通过扫描源代码来发现潜在的问题。这些问题可能包括编程错误、不良实践、性能瓶颈以及不符合编码规范...

    PMD用于根据源代码分析查找不良的编程习惯

    5. **CPD(Copy-Paste Detector)**:PMD还包含了CPD模块,用于检测代码中的重复片段,这对于识别和消除代码重复,提高代码复用性非常有帮助。 6. **性能优化**:PMD通过对源代码的分析,能够指出可能影响性能的...

    静态代码检查插件之pmd

    5. **重复代码检测**:PMD的CPD(Copy-Paste Detector)模块可以查找代码中的重复片段,这对于避免代码冗余和提高代码复用率非常有帮助。 6. **自定义规则集**:除了预设的规则外,用户还可以自定义自己的规则集,...

    pmd开源分析Java代码的工具

    1. **代码质量检查**:PMD能够检测出未使用的变量、空的catch块、不必要的对象创建等常见问题,这些都是可能导致程序运行效率降低或引发错误的因素。 2. **设计问题识别**:PMD可以识别过度复杂的设计结构,如过深...

    Java代码检查工具 PMD.zip

    1. **代码质量检查**:PMD可以检测出过长的方法、类和变量名,未使用的局部变量和参数,以及可能导致性能问题的代码模式,比如过多的数据库查询或不必要的对象创建。 2. **最佳实践推广**:它鼓励遵循Java编程的...

    PMD--java代码检视工具

    1. **错误预防**:PMD能够检测出常见的编程错误,如未关闭的资源、空的catch块、不正确的比较操作等,避免运行时异常的发生。 2. **代码复杂性分析**:PMD可以帮助识别过长的方法、过深的继承层次、过大的类等问题...

    Java代码检查工具PMD

    PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。  ...

    代码分析工具使用PMD

    2. **FindBugs检查**:使用方法与PMD和CheckStyle相似,可以实时检测代码中的潜在问题,如空指针异常、资源未关闭等问题。 3. **规则定制**:FindBugs的规则定制能力相对较弱,只能在其提供的基础规则上进行调整。 ...

    pmdJava程序代码检查工具

    PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。 ...

    PMD集成myeclipse及PMD规则说明

    **PMD** 是一个开源的静态代码分析工具,主要用于检测Java源代码中的潜在问题,比如冗余代码、未使用的变量、空捕获块等。它通过应用一系列预定义的规则来帮助开发者提升代码质量,避免潜在的bug,并遵循最佳编程...

    PMD检测规则

    PMD是一款开源的静态代码检测工具,可以检查代码的质量问题,文件是对PMD检测规则进行说明,解压密码:PMD。

    Eclipse PMD插件分析代码规则(中文).xls

    Eclipse PMD插件分析代码规则(中文),描述部分有中文解释,待补充。

    java代码质量检测工具包含findbug、pmd插件等

    Java代码质量检测是软件开发过程中不可或缺的一环,它有助于提高代码的可读性、可维护性和性能。在Java开发环境中,有许多工具可以帮助我们进行代码质量检测。本篇文章将重点介绍标题和描述中提及的三个主要工具:...

    Gitlab+P3C-PMD(Aliyun)标准化你团队的代码1

    "Gitlab+P3C-PMD(Aliyun)标准化你团队的代码" 本文主要讲述了使用 ...本文提供了一种使用 Gitlab 和 P3C-PMD(Aliyun) 实现代码标准化的方法。这种方法可以帮助团队成员保持代码的一致性,提高代码质量和可维护性。

    pmd-bin-6.19.0-代码重复性检查工具.zip

    pmd-bin 静态代码分析工具 PMD是静态源代码分析器。 它发现常见的编程缺陷,例如未使用的变量,空的catch块,不必要的对象创建等。 它主要涉及Java和Apex,但支持其他六种语言。 PMD具有许多内置检查(以PMD术语,...

    4种静态源代码测试工具的总结(Pc-lint,Pmd,Logiscope,purify)

    本文将对四款广泛使用的静态源代码测试工具进行总结:Pc-lint、PMD、Logiscope 和 Purify。这些工具各具特点,适用于不同编程语言和场景,有助于提升代码质量。 1. **Pc-lint** Pc-lint是一款针对C/C++语言的强大...

    pmd-bin-5.4.0.zip

    总结起来,PMD是一个强大的静态代码分析工具,通过“pmd-bin-5.4.0.zip”提供的5.4.0版本,开发者可以便捷地对Java项目进行重复代码检查,从而提高代码质量和可维护性。了解并熟练使用PMD,对于提升团队的开发效率和...

Global site tag (gtag.js) - Google Analytics