IDEA高效查看源码的快捷键及小技巧

 更新时间:2022年01月22日 14:21:16   作者:Guide哥  
本篇文章这一部分的内容主要为大家介绍了一些平时看源码的时候常用的快捷键/小技巧!非常好用!掌握这些快捷键/小技巧,看源码的效率提升一个等级

基本操作

查看当前类的层次结构

使用频率相关快捷键
⭐⭐⭐⭐⭐Ctrl + H

平时,我们阅读源码的时候,经常需要查看类的层次结构。就比如我们遇到抽象类或者接口的时候,经常需要查看其被哪些类实现。

拿 Spring 源码为例,BeanDefinition 是一个关于 Bean 属性/定义的接口。

public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
  ......
}

如果我们需要查看 BeanDefinition 被哪些类实现的话,只需要把鼠标移动到 BeanDefinition 类名上,然后使用快捷键 Ctrl + H 即可。

在这里插入图片描述

同理,如果你想查看接口 BeanDefinition 继承的接口 AttributeAccessor 被哪些类实现的话,只需要把鼠标移动到 AttributeAccessor 类名上,然后使用快捷键 Ctrl + H 即可。

查看类结构

使用频率相关快捷键
⭐⭐⭐⭐Alt + 7(Win) / Command +7 (Mac)

类结构可以让我们快速了解到当前类的方法、变量/常量,非常使用!

我们在对应的类的任意位置使用快捷键 Alt + 7(Win) / Command +7 (Mac)即可。

在这里插入图片描述

快速检索类

使用频率相关快捷键
⭐⭐⭐⭐⭐Ctrl + N (Win) / Command + O (Mac)

使用快捷键 Ctrl + N (Win) / Command + O (Mac)可以快速检索类/文件。

在这里插入图片描述

关键字检索

使用频率相关快捷键
⭐⭐⭐⭐⭐见下文
  • 当前文件下检索 : Ctrl + F (Win) / Command + F (Mac)
  • 全局的文本检索 : Ctrl + Shift + F (Win) / Command + Shift + F (Mac)

查看方法/类的实现类

使用频率相关快捷键
⭐⭐⭐⭐Ctrl + Alt + B (Win) / Command + Alt + B (Mac)

如果我们想直接跳转到某个方法/类的实现类,直接在方法名或者类名上使用快捷键 Ctrl + Alt + B/鼠标左键 (Win) / Command + Alt + B/鼠标左键 (Mac) 即可。

如果对应的方法/类只有一个实现类的话,会直接跳转到对应的实现类。

比如 BeanDefinition 接口的 getBeanClassName() 方法只被 AbstractBeanDefinition 抽象类实现,我们对这个方法使用快捷键就可以直接跳转到 AbstractBeanDefinition 抽象类中对应的实现方法。

public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
  @Nullable
	String getBeanClassName();
  ......
}

如果对应的方法/类有多个实现类的话,IDEA 会弹出一个选择框让你选择。

比如 BeanDefinition 接口的 getParentName() 方法就有多个不同的实现。

在这里插入图片描述

查看方法被使用的情况

使用频率相关快捷键
⭐⭐⭐⭐Alt + F7

我们可以通过直接在方法名上使用快捷键 Alt + F7 来查看这个方法在哪些地方被调用过。

在这里插入图片描述

查看最近使用的文件

使用频率相关快捷键
⭐⭐⭐⭐⭐Ctrl + E(Win) / Command +E (Mac)

你可以通过快捷键 Ctrl + E(Win) / Command +E (Mac)来显示 IDEA 最近使用的一些文件。

在这里插入图片描述

查看图表形式的类继承链

使用频率相关快捷键
⭐⭐⭐⭐相关快捷键较多,不建议记

点击类名 右键 ,选择 Shw Diagrams 即可查看图表形式的类继承链。

在这里插入图片描述

你还可以对图表进行一些操作。比如,你可以点击图表中具体的类 右键,然后选择显示它的实现类或者父类。

在这里插入图片描述

再比如你还可以选择是否显示类中的属性、方法、内部类等等信息。

在这里插入图片描述

如果你想跳转到对应类的源码的话,直接点击图表中具体的类 右键 ,然后选择 Jump to Source

在这里插入图片描述

插件推荐

一键生成方法的序列图

序列图(Sequence Diagram),亦称为循序图,是一种 UML 行为图。表示系统执行某个方法/操作(如登录操作)时,对象之间的顺序调用关系。

这个顺序调用关系可以这样理解:你需要执行系统中某个对象 a 提供的方法/操作 login(登录),但是这个对象又依赖了对象 b 提供的方法 getUser(获取用户)。因此,这里就有了 a -> b 调用关系之说。

我们可以通过 SequenceDiagram 这个插件一键生成方法的序列图。

如果你因为网络问题没办法使用 IDEA 自带的插件市场的话,也可以通过 IDEA 插件市场的官网手动下载安装。

在这里插入图片描述

如何使用呢?

1、选中方法名(注意不要选类名),然后点击鼠标右键,选择 Sequence Diagram 选项即可!

在这里插入图片描述

2、配置生成的序列图的一些基本的参数比如调用深度之后,我们点击 ok 即可!

在这里插入图片描述

3、你还可以通过生成的时序图来定位到相关的代码,这对于我们阅读源码的时候尤其有帮助!

在这里插入图片描述

4、时序图生成完成之后,你还可以选择将其导出为图片。

在这里插入图片描述

相关阅读:IDEA一键生成方法的序列图神操作》

项目代码统计

为了快速分析项目情况,我们可以对项目的 代码的总行数、单个文件的代码行数、注释行数等信息进行统计。

Statistic 这个插件来帮助我们实现这一需求。

在这里插入图片描述

有了这个插件之后你可以非常直观地看到你的项目中所有类型的文件的信息比如数量、大小等等,可以帮助你更好地了解你们的项目。

在这里插入图片描述

你还可以使用它看所有类的总行数、有效代码行数、注释行数、以及有效代码比重等等这些东西。

在这里插入图片描述

如果,你担心插件过多影响 IDEA 速度的话,可以只在有代码统计需求的时候开启这个插件,其他时间禁用它就完事了!

相关阅读:《IDEA插件Statistic统计代码快速分辨烂项目

以上就是IDEA高效查看源码的快捷键及小技巧的详细内容,更多关于IDEA看源码快捷键技巧的资料请关注脚本之家其它相关文章!

相关文章

  • 基于selenium 获取新页面元素失败的解决方法

    基于selenium 获取新页面元素失败的解决方法

    今天小编就为大家分享一篇基于selenium 获取新页面元素失败的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Spring AOP的几种实现方式总结

    Spring AOP的几种实现方式总结

    本篇文章主要介绍了Spring AOP的几种实现方式总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java中各类日期和时间转换超详析总结(Date和LocalDateTime相互转换等)

    Java中各类日期和时间转换超详析总结(Date和LocalDateTime相互转换等)

    这篇文章主要介绍了Java中日期和时间处理的几个阶段,包括java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp、java.util.Calendar和java.util.GregorianCalendar等类,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • Java Jmeter全局变量设置过程图解

    Java Jmeter全局变量设置过程图解

    这篇文章主要介绍了Java Jmeter全局变量设置过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • springboot验证码的生成与验证的两种方法

    springboot验证码的生成与验证的两种方法

    本文主要介绍了springboot验证码的生成与验证的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • java分布式面试CAP分别代表含义分析

    java分布式面试CAP分别代表含义分析

    这篇文章主要为大家介绍了java分布式面试中关于CAP分别代表含义的问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Java的LinkedHashSet源码深入讲解

    Java的LinkedHashSet源码深入讲解

    这篇文章主要介绍了Java的LinkedHashSet源码深入讲解,LinkedHashSet是HashSet的子类,而由于HashSet实现了Set接口,因此LinkedHashSet也间接实现了Set类,LinkedHashSet类属于java.base模块,java.util包下,需要的朋友可以参考下
    2023-09-09
  • 使用idea开发javaWeb应用程序的思路(实现用户的增删改查)

    使用idea开发javaWeb应用程序的思路(实现用户的增删改查)

    这篇文章主要介绍了使用idea开发javaWeb应用程序的思路(实现用户的增删改查),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java如何利用return结束方法调用

    Java如何利用return结束方法调用

    这篇文章主要介绍了Java如何利用return结束方法调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 详解Spring Cloud Config采用Git存储时两种常用的配置策略

    详解Spring Cloud Config采用Git存储时两种常用的配置策略

    这篇文章主要介绍了详解Spring Cloud Config采用Git存储时两种常用的配置策略,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论