博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IDEA-常用插件,使用FindBugs寻找bug,代码分析
阅读量:6458 次
发布时间:2019-06-23

本文共 988 字,大约阅读时间需要 3 分钟。

  hot3.png

bug无处不在,但是我们总希望少一点bug。

最近发现了一款好用的寻找bug的插件,特此记下。

一、安装

路径:File-->Settings-->Plugins-->Browse repositories....-->输入FindBugs-IDEA-->点击安装

 

二、使用

注意:安装后需要重启idea

 

 有各种可选范围

三、结果分析

1->Bad pratice编程的坏习惯 

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

2->Malicious code vulnerability 恶意代码漏洞 

听起来很吓人呀,主要是一些属性直接使用public让别的类来获取,建议改为private并为其提供get/set方法. 
还有一些public的静态字段,可能会被别的包获取之类的. 
这些也需要根据项目具体情况来,个人意见,在有的不重要类,有时直接公开使用属性,可能更为便捷.如果你认为这些不需要修改,完全可以忽略.

3->Dodgy code 糟糕的代码 

·比如一个double/float被强制转换成int/long可能会导致精度损失,一些接近零的浮点数会被直接截断,事实上我们应该保留. 
在类型转换的时候,我们应该为类型转换提供一个安全的转换方法,因为我们永远不会知道,我们的app在用户手里会发生什么,所以我们要尽可能的去减少这种发生错误的可能.

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

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

·不安全的类型转换等等。 

这项太多了,就不一一列举了。

4->performance 性能 

主要是一些无用的代码,比如声明了没有用到的属性等等

5->correctness 代码的正确性 这一项应该算是最重要的了 

主要是没有对变量进行不为空判定,在特殊情况可能发生空指针异常.

 

参考文章:

四、扩展

1、点击如下按钮,可分析当前文件,真是太强大了。

 2、有一个默认编码检查的类很烦

  我直接去掉检查了:Dector:DefaultEncodingDector

转载于:https://my.oschina.net/zz006/blog/3060110

你可能感兴趣的文章
Leetcode 4 - median-of-two-sorted-arrays
查看>>
noj 2033 一页书的书 [ dp + 组合数 ]
查看>>
ERDAS软件应用(四)遥感影像数据增强
查看>>
修改OBS为仅直播音频
查看>>
完整版:《开源框架实战宝典电子书V1.0.0》内测版下载地址!
查看>>
OCP读书笔记(14) - 管理数据库性能
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
CKEditor的使用-编辑文本
查看>>
洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块
查看>>
HDU------checksum
查看>>
使用树莓派拍摄延时动画,制作GIF图
查看>>
css命名规范
查看>>
js 效果
查看>>
19.Java5同步集合类的应用
查看>>
python 关键字yield解析
查看>>
<c:forEach varStatus="status">中 varStatus的作用
查看>>
Aqua Data Studio 数据库开发工具
查看>>
puppet来管理文件和软件包
查看>>
【转载】基于lucene的搜索方案
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>