一个好用的代码优化神器FindBugs

简介: 一个好用的代码优化神器FindBugs

前言


  在使用开发工具进行项目开发时,由于开发人员在编写代码过程中,可能由于上下文或者数据校验等各种情况会出现难免的异常代码,有些代码在编译的过程中是无法发现的。本次介绍的代码优化插件FindBugs将会帮助我们减少和规避一部分不必要的异常。开始介绍。


FindBugs


  FindBugs是一款不需要执行程序使用静态分析的方式来查找和发现Java代码中的错误。FindBugs的最新版本是 3.0.1。FindBugs已被下载超过一百万次。据统计在开发使用中,FindBugs 报告的误报率低于50%。


安装FindBugs


  本次将基于IDEA开发工具安装FindBugs,首先打开IDEA,如下图,在File菜单栏 找到Settings。

image.png

  在Settings页面找到Plufgins在输入框输入FindBugs即可出现如下图中找到的FindBugs插件信息。

image.png


  可以查看FindBugs的详细信息。如果已经安装了的话,不需要进行安装了,如果大家没有安装的话可以点击install按钮即可安装,安装完成之后,需要重启IDEA即可使用FindBugs。

image.png


使用FindBugs


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


image.png


工具菜单栏的的主要功能描述如下:


  • Analyze Selected File(s):分析所选文件,主要是针对单个文件进行分析检查
  • Analyze Package(s) Files:分析程序包文件,主要是针对指定包下的文件进行分析检查
  • Analyze Module Files:分析模块文件,主要针对指定的模块下文件进行分析检查
  • Analyze Project Files:分析项目文件,对整体的项目中下的文件进行分析检查
  • Analyze Scope Files:分析范围文件,对指定范围内的文件进行分析检查
  • Analyze All Modified Files:分析所有修改的文件,对所有的修改过的文件进行分析检查
  • Analyze changelist Files:分析变更列表文件,对所有的变更过的文件进行分析检查

  

如下图是针对某个项目文件进行代码检查。可以看到总共检查了44个文件。其中发现了8个bug。 主要有:Performance、Dodgy code、Correctness三种类型的异常信息。其中Performance是关于代码性能相关方面的优化建议,Dodgy code是糟糕的代码,是需要进行修改的。Correctness是代码正确性相关方面的检查。


image.png  


示例如下图,点击选中的Dead store to user。可以看到异常所在的文件中的位置,及异常信息。在最右边提示文件所在的类和行数信息,在最右下角,有相关描述信息。Dead store to local variable是局部定义了未使用的变量信息,该值不会在任何后续指令中读取或使用。通常,这表示错误,因为从未使用计算的值。在项目中,存在未使用的局部变量,应该及时清除掉。


image.png



  示例Null pointer dereference可能存在的空指针引用,右下角介绍此处取消引用空指针。这将在执行代码时导致NullPointerException。所以遇到这种可能出现空指针情况,应该判空处理。


image.png



FindBugs异常类型


  FindBugs检查的异常类型主要可以分为:Bad practice、Dodgy code、Performance、Experimental、Multithreaded correctness 、Correctness 几大类。


结语


  好了,以上就是关于FindBugs的介绍



目录
相关文章
|
Java Maven Spring
SpringBoot-读取配置文件(映射法)
本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过注解和属性文件来加载和访问应用程序的配置信息。Spring Boot提供了简单而强大的功能,可以轻松地加载各种类型的配置文件,并将其映射到Java对象中。通过使用@ConfigurationProperties注解,或者使用@Value注解从配置文件中读取属性值。
768 0
|
XML Java 数据格式
大多数人忽略了的Spring官方项目,Spring Web Services
大多数人忽略了的Spring官方项目,Spring Web Services
1692 0
|
存储 监控 数据挖掘
云MES:数字化转型的引擎,企业上云的强力推手
云MES系统与企业上云的紧密合作,使得企业能够更加灵活地应对市场变化,快速响应客户需求。无论是新产品的快速研发与上市,还是生产线的快速调整与优化,云MES系统都能提供强有力的支持,助力企业在激烈的市场竞争中占据先机。
821 10
云MES:数字化转型的引擎,企业上云的强力推手
|
自然语言处理
学生党打工人救星,GPT一句话生成精美PPT
学生党打工人救星,GPT一句话生成精美PPT
650 1
|
安全 PHP 开发者
PHP中的异常处理:从入门到高级
在PHP的编程世界中,异常处理是一块不可或缺的拼图。本文将通过浅显易懂的语言和实际代码示例,带你了解如何在PHP中捕获、处理异常,并探讨高级异常管理策略。无论你是PHP新手还是资深开发者,这篇文章都能为你提供新的见解和技巧。
110 28
|
SQL 存储 关系型数据库
浅析MySQL代价估计器
代价估计是优化其中非常重要的一个步骤,研究代价估计的原理和MySQL的具体实现对做SQL优化是非常有帮助。本文有案例有代码,由浅入深的介绍了代价估计的原理和MySQL的具体实现。
112891 133
|
算法 IDE API
Python编码规范与代码可读性提升策略####
本文探讨了Python编码规范的重要性,并深入分析了如何通过遵循PEP 8等标准来提高代码的可读性和可维护性。文章首先概述了Python编码规范的基本要求,包括命名约定、缩进风格、注释使用等,接着详细阐述了这些规范如何影响代码的理解和维护。此外,文章还提供了一些实用的技巧和建议,帮助开发者在日常开发中更好地应用这些规范,从而编写出更加清晰、简洁且易于理解的Python代码。 ####
|
Docker 容器
14 response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file speci
14 response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file speci
336 1
|
弹性计算 固态存储 JavaScript
4核8G云服务器支持多少人?4C8G多少钱一年?
阿里云4核8G ECS u1实例,支持约30个并发用户,日均1万IP访问。目前优惠价700元/年。配置包括Intel Xeon CPU,4核8GB内存,1-3M带宽,20-40GB ESSD Entry系统盘。网络收发包可达50万PPS,最高25万连接数。适合低至中等流量网站。
839 2
|
Java 测试技术 开发者
阿里巴巴Java开发手册(终极版)
别人都说我们是码农,但我们知道,自己是个艺术家。也许我们不过多在意自己的外表和穿着,但我们不羁的外表下,骨子里追求着代码的美、质量的美。而代码规约其实就是一个对美的定义。
3200 0