java程序阅读技巧_Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!...

1f76b5a2b45ffb54defe6c81b8358f16.png

1、Quick Type Hierarchy 快速查看类继承体系。

快捷键:Ctrl + T

93e0b38b9b65105414e6bc0f7a7de85e.png

查看类很多人可能都知道,可源码阅读的时候更多用来查看方法体系更重要,可以方便快速的定位到方法的实现类。如:

ed4e400523f8797cdf8939e883577901.png

此时如果想查看getBean()方法如何实现,可能会让你失望。结果如下:

8ed5873005c654e2115cd472145b223f.png

进入到了BeanFactory的接口定义方法,什么也没有。

此时我们直接在getBean上 Ctrl+T :

2f30930937b15c0a189815d3986d5b23.png

可以看到其实现的子类,点击子类进去即可。此方法还适用于框架中非常常见的模板方法模式,在抽象类中定义的模板方法,用这招轻松找到实现类。

当然还有详细的Open Type Hierarchy

1ed8f3291045a8c721d575523c83e78b.png

会在左侧视图里面展示更好的Type View:

5f253aaa2ea2751bff958162c346d829.png

2、Open Call Hierachy 打开调用层级

快捷键:Ctrl+Alt+H

8b2024315eeb26a6cf8be9dc43f9bdc0.png

个人认为这是阅读源码最有用的利器,掌握它,可以轻松游走于各种方法调用之间。然而从我身边的朋友来看, 很多人都不知道他的存在。

Open Call Hierachy 查看结果如下,调用关系清晰明朗,可以直接定位到调用的地方。

c15db564497138c67d01d977a3e210be.png

3、Debug 断点的灵活使用

断点调式时,心中必须很清楚F5、F6、F7、F8的作用,不然要么迷失于源码之中,要么什么都没看清就走完了。

重新啰嗦一下它们的作用:

F5 Step Into,单步进入。进入到某个方法里面;

F6 Step Over,单步结束。一行一行的执行代码,入门时很多人只会一行一行走;

F7 Step Return,跳出放发。进入到某个方法里面时,如果发现这个方法没有你想看的东西,或者已经看到了你想看的,直接

F7,跳出到方法外。

F8 Resume,继续往下执行。往下执行,遇到下一个断点时再停下来,没有则一直运行完。

调试时我们可能会经常遇到loadClass的情况:

f35ac69492e7228d16eacfdf993fed97.png

在40行想进入ClassPathXmlApplicationContext构造方法,F5不料进入了类加载:

a8d28d4f5b4343b70f4905ae5bb8b8ea.png

熟悉类加载的同学会很熟悉,不熟悉类加载机制的也不要慌,这是说明你调试的类第一次被加载,这时候我们F7跳出类加载,回到40行。

df23aa879277e7b585fe6d82562c2a27.png

这个时候再按F5会真正进入ClassPathXmlApplicationContext构造方法。

当我们断点跟踪Spring这种源码的时候,一定要有节奏,以优先找到整体脉络为准,不要一直的F5进入每一行细看,F5下去,几天都走不完Spring。能熟练在Spring这种框架中F5、F6、F7、F8,就离弄懂他不远了。

Dubug的时候还应该注意debug视图的线程栈:

463284c8da1a306b7b5e16645ef8a3a0.png

这个视图能够让你在走得比较深的时候,可以一眼看出自己怎么进来的,当前位于什么方法里等信息,还可以点击对应的代码行数进入查看。

总结,这是我使用IDE跟踪源码的几个小技巧,尤其是第二点,是很实用的,希望对大家在进行源码跟踪时有一定帮助。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部