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看源码快捷键技巧的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot集成Mybatis的实现步骤

    SpringBoot集成Mybatis的实现步骤

    这篇文章主要介绍了SpringBoot集成Mybatis的实现步骤,本文通过SpringBoot +MyBatis 实现对数据库学生表的查询操作,需要的朋友可以参考下
    2020-12-12
  • SpringBoot生成PDF的五种实现方法总结

    SpringBoot生成PDF的五种实现方法总结

    这篇文章主要介绍了SpringBoot生成PDF的五种实现方法,在开发中经常会遇到需要进行对一些数据进行动态导出PDF文件,然后让用户自己选择是否需要打印出来,这篇文章我们来介绍五种实现方法,需要的朋友可以参考下
    2024-10-10
  • Spring @bean和@component注解区别

    Spring @bean和@component注解区别

    本文主要介绍了Spring @bean和@component注解区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java去除字符串空格的几种方法简单举例

    Java去除字符串空格的几种方法简单举例

    在Java中要去掉字符串中的空格,可以使用多种方法,这篇文章主要给大家介绍了关于Java去除字符串空格的几种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Mybatis返回值(resultType&resultMap)的具体使用

    Mybatis返回值(resultType&resultMap)的具体使用

    返回值属性有两种设置,一种是resultType,一种是resultMap,本文主要介绍了Mybatis返回值(resultType&resultMap)的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • RESTful API设计原则与实现示例详解

    RESTful API设计原则与实现示例详解

    这篇文章主要为大家介绍了RESTful API设计原则与实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Java聊天室之实现聊天室服务端功能

    Java聊天室之实现聊天室服务端功能

    这篇文章主要为大家详细介绍了Java简易聊天室之实现聊天室服务端功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
    2022-10-10
  • 深入讲解基于JDK的动态代理机制

    深入讲解基于JDK的动态代理机制

    众所周知相比于静态代理,动态代理避免了开发人员编写各个繁锁的静态代理类,下面这篇文章主要给大家介绍了关于基于JDK的动态代理机制的相关资料,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • springboot2 使用activiti6 idea插件的过程详解

    springboot2 使用activiti6 idea插件的过程详解

    这篇文章主要介绍了springboot2 使用activiti6 idea插件,本文通过截图实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 三种Spring BeanName生成器,你了解吗

    三种Spring BeanName生成器,你了解吗

    无论我们是通过 XML 文件,还是 Java 代码,亦或是包扫描的方式去注册 Bean,都可以不设置BeanName,而Spring均会为之提供默认的 beanName,本文我们就来看看 Spring 中三种处理不同情况的 beanName生成器吧
    2023-09-09

最新评论