千家信息网

Java源码跟踪阅读技巧有哪些

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要为大家展示了"Java源码跟踪阅读技巧有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Java源码跟踪阅读技巧有哪些"这篇文章吧。1、Qu
千家信息网最后更新 2025年01月18日Java源码跟踪阅读技巧有哪些

这篇文章主要为大家展示了"Java源码跟踪阅读技巧有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Java源码跟踪阅读技巧有哪些"这篇文章吧。

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

快捷键:Ctrl + T

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

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

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

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

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

当然还有详细的Open Type Hierarchy

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

2、Open Call Hierachy 打开调用层级

快捷键:Ctrl+Alt+H

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

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

3、Debug 断点的灵活使用

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

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

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

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

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

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

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

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

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

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

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

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

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

以上是"Java源码跟踪阅读技巧有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

方法 源码 一行 时候 跟踪 断点 技巧 内容 篇文章 视图 代码 体系 作用 子类 快捷键 更多 框架 模板 结果 要么 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 支付宝网络技术有限公司是做啥的 pubg为什么老是服务器繁忙 联通云盾网络安全防护 linux怎么看远程服务器端口 写网络安全的英语作文80词 三剑客网络技术 未成年人网络安全状况 管理软件开发学什么 广电u点家庭服务器安装多少钱 工厂服务器的用途 数据库优化服务器配置 新乡市领恒网络技术有限公司 服务器关机清除虚拟文件 高中生对于网络安全的看法 信息网络安全模型不包括哪些 网络安全与执法硕士 重庆品质软件开发推广 关于网络安全的知识50字 公大网络安全与执法就业去向 华为软件开发云如何使用 网络安全要英语好吗 华阴哪家软件开发最好 福建网络安全知识竞赛答案 车牌识别数据库创建不了 华为手机分布式数据库 广州飞旭软件开发公司 网络安全防范教育现状 怀柔区综合网络技术服务大概费用 软件开发电子商务 软件开发判决书
0