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

基本操作

查看当前类的层次结构

使用频率 相关快捷键
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看源码快捷键技巧的资料请关注我们其它相关文章!

(0)

相关推荐

  • Intellij IDEA的一些调试技巧(小结)

    程序员的工作内容,除了大部分时间写代码之外,因为有不少的时间是用在调试代码上.甚至说不是在调试代码,就是即将调试代码. :) 今天我们来谈谈调试代码的一些技巧,在使用IDE提供的debugger时一些快速定位问题的方式. 看到这里的朋友,不要马上认为我标题党,再往下看看,如果你还有一些更好用的技巧,欢迎留言. 下面进入正题. 1 多线程调试 开发过多线程应用的朋友应该有体会,有些时候,为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下. 在IDE里断点停下来

  • 教你使用IDEA搭建spring源码阅读环境的详细步骤

    目录 第一步.准备gradle环境 第二步.下载spring源码 第一步.准备gradle环境 1.去官网下载gradle https://gradle.org/releases/ 2.将其解压缩,创建repository文件夹 和init.d文件夹 创建init.gradle文件 输入文本信息,主要是配置阿里云镜像仓库地址,和maven的类似 gradle.projectsLoaded { rootProject.allprojects { buildscript { repositories

  • IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径

    1. 打断点 直接在抽象类或者接口前打断点,直接debug模式就能自动跳入正确的实现类,如图: 这个document的解析,有5种可能,哪个才是正确的?直接在前面打断点,就能跳入正确的了 2. 发现正确实现类 到此这篇关于IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径的文章就介绍到这了,更多相关IDEA调试源码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • 使用Intellij IDEA查看Java源码技巧

    1 查看接口的实现类:Ctrl+Alt+B 选中按快捷键,然后跳到实现类的地方去 2 返回上/下个光标地方:Alt+<- 和 Alt+-> 可通过修改快捷键(搜关键字left.right)找到对应并改为 Ctrl+J.... 3 查看Java方法调用树(被调/主调):Ctrl+Alt+H 分为调用当前方法的树.当前方法调用的下级方法 4 查看表达式.变量.方法参数的传递关系:主菜单中选择Analyze | Dataflow from/to Here ....不好用 5 查看类继承关系图:Ctr

  • Java源码跟踪阅读技巧【值得收藏】

    今天跟大家分享一下我平时阅读源码的几个小技巧,对于阅读Java中间件如Spring.Dubbo等框架源码的同学有一定帮助. 本文基于Eclipse IDE,我们每天都使用的IDE其实提供了很多强大的功能,掌握它们,往往能够事半功倍. 1.Quick Type Hierarchy 快速查看类继承体系. 快捷键:Ctrl + T 查看类很多人可能都知道,可源码阅读的时候更多用来查看方法体系更重要,可以方便快速的定位到方法的实现类.如: 此时如果想查看getBean()方法如何实现,可能会让你失望.结

  • 超详细的Intellij IDEA 看源码必备技能

    最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟. 这次利用了IDEA的diagram,结果一目了然,也是好用到炸裂,就此分享. 1.查看图形形式的继承链 在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示: 实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择Diagrams,效果是一

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

    基本操作 查看当前类的层次结构 使用频率 相关快捷键 Ctrl + H 平时,我们阅读源码的时候,经常需要查看类的层次结构.就比如我们遇到抽象类或者接口的时候,经常需要查看其被哪些类实现. 拿 Spring 源码为例,BeanDefinition 是一个关于 Bean 属性/定义的接口. public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement { ...... } 如果我们需要查看 BeanDe

  • Android Studio如何查看源码并调试的方法步骤

    背景 最近遇到一个Dialog问题,在6.0的手机上才可以重现,但是我们的工程已经是targetsdk=28了,点击Dialog的引用,只能看见28的class文件,现在我也越来越懒了,以前针对这种问题,我都会写个demo,去重现问题,但是现在希望能直接在当前工程快速定位出原因,能够基于源码debug肯定更好了,为了实现这个懒的目标,我找了很多办法,下面就一一介绍下 方法一 切换compilesdk studio默认使用的是gradle里配置的compilesdkversion,只要你把comp

  • 查看源码的工具 学习jQuery源码不错的工具

    使用jQuery还可以让我们从各大浏览器不兼容的噩梦中解脱出来,最新版的jQuery还增强的对HTML5的支持,使得我们更加应该使用它.但是jQuery的源码很长,有些地方的实现还很巧妙,使得我们仅仅会javascript也未必能很好的理解每个函数是怎么运行的.下面就让我分享我学习jQuery源码的时候使用的几个工具和应该了解的问题. 这个jquery源代码查看器,还不是很强大,只是能够简单的查看函数引用,但是不能返回. 我上这个网上下载下来了,准备改进一下,你们可以先下载来用一用,有什么意见和

  • 详细聊聊React源码中的位运算技巧

    目录 前言 几个常用位运算 按位与(&) 按位或(|) 按位非(-) 标记状态 优先级计算 总结 前言 这两年有不少朋友和我吐槽React源码,比如: 调度器为什么用小顶堆这种数据结构,直接用数组不行? 源码里各种单向链表.环状链表,直接用数组不行? 源码里各种位运算,有必要么? 作为业务依赖的框架,为了提升一点点运行时性能,React从不吝惜将源码写的很复杂. 在涉及状态.标记位.优先级操作的地方大量使用了位运算. 本文会讲解其中比较有代表性的部分.学到之后,当遇到类似场景时露一手,你就是业务

  • Linux查看History记录加时间戳的小技巧

    Linux查看History记录加时间戳小技巧 熟悉bash的都一定知道使用history可以输出你曾经输入过的历史命令,例如 [root@servyou_web ~]# history | more 6 ./test.sh 7 vim test.sh 8 ./test.sh 但是这里只显示了命令,并没有显示执行命令的时间,因为保存历史命令的~/.bash_history里并没有保存时间. 通过设置环境变量 export HISTTIMEFORMAT="%F %T `whoami` "

  • Intellij IDEA 阅读源码的 4 个绝技(必看)

    前段时间分享了<阅读跟踪 Java 源码的几个小技巧>是基于 Eclipse 版本的,看大家的留言都是想要 IDEA 版本的源码阅读技巧. 所以,为了满足众多 IDEA 粉丝的要求,栈长我特意做一期 IDEA 版的. 1.定位到方法实现类 public static Object getBean(String name) { return applicationContext.getBean(name); } 如以上代码,IDEA 如何跳转到 getBean 方法的实现类? 在 IDEA 中,

  • 详解查看JAVA API及JAVA源码的方法

    在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码 对于java的api,一般是在下面的网址中进行查看 https://docs.oracle.com/javase/8/docs/api/ 而对于java的源码,我们现在来演示查看nextLine()的源码: 将鼠标放置在希望转跳到源码的函数上,等待系统浮现这个黄色的框 然后点击下面的Open Declaration,即可进入

  • Android 网络图片查看器与网页源码查看器

    在AndroidManifest.xml里面先添加权限访问网络的权限: <uses-permission android:name="android.permission.INTERNET"/> 效果图如下: 下面是主要代码: package com.hb.neting; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.ann

  • Android源码系列之深入理解ImageView的ScaleType属性

    做Android开发的童靴们肯定对系统自带的控件使用的都非常熟悉,比如Button.TextView.ImageView等.如果你问我具体使用,我会给说:拿ImageView来说吧,首先创建一个新的项目,在项目布局文件中应用ImageView控件,代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.

随机推荐