恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道

简介: 最近,有同学问我,为什么你如此钟爱IDEA?因为你越用越顺手,还能不断给你惊喜,让你乐此不疲的去挖掘它的功能。

最近,有同学问我,为什么你如此钟爱IDEA?


因为你越用越顺手,还能不断给你惊喜,让你乐此不疲的去挖掘它的功能。


就比如,我最近在stackoverflow上刷到的一个帖子:How to use IntelliJ IDEA to find all unused code?

直译过来,就是怎么通过IDEA找到未使用过的代码?让我吃惊的是竟然有有这么多的程序员不知道有这个功能。


到这里,不得不说说IDEA中的静态代码分析能力竟然如此强大!


那咱们先来解决上面那个问题:如何找出未使用的代码?其实很简单的,就是用它的代码分析功能,菜单栏:Analyze->Run Inspection By Name(译:通过名字来检查),或者用快捷键 ctrl+alt+shift+i,如下图:

再从下拉列表中,选择Unused declaration,如下图:

这样便能找出未被使用的代码,而且它还提供了4种解决方案,如下图所示:

这只是它代码分析功能的冰山一角,它支持许多语言的检查功能,不仅能帮我们发现代码中的编译错误,还能发现效率低下的代码问题,比如:unreachable code, unused code, non-localized string, unresolved method, memory leaks, spelling problems 等问题。


这里大家可以看到IDEA在默认情况下,会分析所有的打开文件,有问题的代码会在编辑器右侧显示,可以看到整个文件的所有分析状况,如下图所示:

而且它支持灵活配置,可以自己启用/禁用某个代码检查行为,改变问题的严重等级,创建自定义的检查配置问题,根据需求选择检查范围,如下图所示:

下面我来整体解读一下它的静态代码分析功能。


1、代码规范检查


打开 Analyze -> Inpect Code,检查代码是否符合 Settings -> Inspections 的设置,检查结果如下图所示:

2、检查指定的 Inspections 项


打开 Analyze -> Run Inspection By Name,输入要检查的项,如下图所示:

3、推断无效代码


打开 Analyze -> Infer Nullity,可以分析无效代码,如下图所示:

4、分析代码依赖


打开 Analyze -> Analyze Dependencies,查看依赖结果,如下图所示

5、分析代码反向依赖


打开 Analyze -> Analyze Backward Dependencies,查看反向依赖结果,如下图所示:

6、分析模块依赖


打开 Analyze -> Analyze Module Dependencies,查看模块依赖,如下图所示:

7、分析 DSM 分层依赖


打开 Analyze -> Analyze Dependency Matrix,查看依赖结构矩阵,如下图所示:

8、分析循环依赖


打开 Analyze -> Analyze Cyclic Dependencies,查看循环依赖关系,如下图所示:

9、分析堆栈跟踪信息


打开 Analyze -> Analyze Stacetrace,输入堆栈信息,如下图所示:

10、Analyze Dataflow to Here


它展示了这个变量的值是从哪些地方传递过来的,并且包含传递给改变了的值是那里传递过来的,值的传递链,如下图所示:

11、Analyze Dataflow to Here


它展示了这个变量的值传递到了哪些地方,并且包含传递之后的值又被传递到哪些地方去了,值的传递链。

总得来说,IDEA给我们提供的分析功能已经足够用了,但是还有一些第三方的插件可供我们使用,比如FindBugs、
alibaba-java-coding-guidelines等。


IDEA确实有趣,咱们一起来玩转它,哈哈~~~

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

相关文章
|
23天前
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
|
2月前
|
SQL Java 关系型数据库
在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能
在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能
|
4月前
|
开发框架 前端开发 Java
【IntelliJ IDEA】idea 实用功能Auto Import:自动优化导包(自动删除、导入包)
【IntelliJ IDEA】idea 实用功能Auto Import:自动优化导包(自动删除、导入包)
58 0
|
4月前
|
SQL IDE Linux
IDEA:7个强大功能助你高效编码和优质工作!
IDEA:7个强大功能助你高效编码和优质工作!
25 0
|
4月前
|
程序员 开发工具 git
震精!IDEA不为人知的功能竟被鹅厂用400页IntelliJ文档讲清楚了
这就是为什么在这种情况下,编辑器是屏幕上唯一可见的,具有所有其他与编码无关的功能的专用快捷方式。而且IDEA代表集成开发环境。 它是多种工具的组合,使软件开发过程更容易,更健壮,更不容易出错,为了帮助开发人员组织他们的工作流程,IntelliJ IDEA为他们提供了一个惊人的工具集,包括反编译器,Docker支持,字节码查看器,FTP和许多其他工具
|
4月前
|
存储 Java 测试技术
基于IDEA创建SpringBoot项目并进行入门分析
基于IDEA创建SpringBoot项目并进行入门分析
62 0
|
5月前
|
安全 IDE Java
IDEA快捷键总结和各种实用功能
IDEA快捷键总结和各种实用功能
104 1
|
7月前
|
Java Spring
【Springboot】idea中配置文件不生效、自动提示功能消失、小绿标不出现现象
【Springboot】idea中配置文件不生效、自动提示功能消失、小绿标不出现现象
346 0
|
10月前
|
存储 JSON 程序员
好用到爆!IDEA 版 Postman 面世了,功能真心强大
IDEA是最常用的开发工具,很多程序员都想把它打造成一站式开发平台,于是安装了各种各样的插件。最近发现了一款IDEA插件RestfulFastRequest,细节做的真心不错,说它是IDEA版的Postman也不为过,推荐给大家!
|
SQL 前端开发 Java
IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能
IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能
330 0
IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能

热门文章

最新文章

相关产品

  • 云迁移中心