FindBugs介绍

FindBugs是一款不需要执行程序使用静态分析的方式来查找和发现Java代码中的错误。FindBugs 报告的误报率低于50%。

参考链接:一个好用的代码优化神器FindBugs - 掘金

FindBugs 侧重于发现代码中存在的bug,如运行时错误检测(空指针检查、未合理关闭资源、字符串相同判断错(==,而不是equals)等),它可以简单高效全面地帮助我们发现程序代码中存在的bug以及潜在隐患,针对各种问题,它提供了简单的修改意见供我们参考

1、下载插件

选择File -> Settings -> Plugins -> Marketplace 搜索 “FindBugs” ,下载插件。

使用FindBugs

  上面已经安装完成了FindBugs的插件,下面将开始使用FindBugs进行代码规范简称。首先在IDEA项目中,可以选择file文件或者package包,然后右击,可以看到FindBugs插件已经安装并可以进行代码检查。

2选择file文件或者package包,点击Analyze Code...

3、默认选择,点击OK

4、如下图是针对包名进行代码检查的结果。可以看到总共检查了3个包。其中发现了2个可优化的bug。 主要有:Performance、Dodgy code两种类型的异常信息

  1. 参考问题缺陷类型及、描述,进行优化修改自己的代码!

常见FindBugs缺陷/异常类型:

(1)Bad pratice编程的坏习惯 。主要是命名问题,比如类名最好以大写开头,字符串不要使用等号不等号进行比较,可能会有异常最好用try-catch包裹的代码,方法有返回值但被忽略等等,这些如果不想改可以直接忽略.

(2)Multithreaded correctness多线程安全问题。比如使用了非线程安全的类,如DateFormats。

(3)Malicious code vulnerability 恶意代码漏洞 。看着比较吓人的提示,但主要是一些属性直接使用public让别的类来获取,建议改为private并为其提供get/set方法;还有一些public的静态字段,可能会被别的包获取之类的;这些也需要根据项目具体情况来,个人意见,在有的不重要类,有时直接公开使用属性,可能更为便捷.如果你认为这些不需要修改,完全可以忽略。

(4)Dodgy code糟糕垃圾的代码 。

比如一个double/float被强制转换成int/long可能会导致精度损失,一些接近零的浮点数会被直接截断,事实上我们应该保留。

在类型转换的时候,我们应该为类型转换提供一个安全的转换方法,因为我们永远不会知道,我们的app在用户手里会发生什么,所以我们要尽可能的去减少这种发生错误的可能。

比如使用switch的时候没有提供default。

比如多余的空检查,就是不可能为空的值,增加了不为空判断,这是没有必要的。属于代码冗余。

比如不安全的类型转换等等。

(5)performance 性能 。主要是一些无用的代码,比如声明了没有用到的属性等等。

(6)correctness代码的正确性 这一项最重要,没有对变量进行不为空判定,在特殊情况可能发生空指针异常。

FindBugs常见错误介绍、分析、处理参考:FindBugs常见错误介绍、分析、处理-蒲公英云

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值