集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Java >

成都java技术培训:Java源码跟踪阅读技巧

发布者: 成都达内     浏览次数:     发布时间:2018-10-10 10:29:44

成都java技术培训:今天成都达内小编就跟大家分享一下小编平时阅读源码的几个小技巧,对于阅读Java中间件如Spring、Dubbo等框架源码的同学有一定帮助。...

  成都java技术培训:Java源码跟踪阅读技巧

  今天成都达内小编就跟大家分享一下小编平时阅读源码的几个小技巧,对于阅读Java中间件如Spring、Dubbo等框架源码的同学有一定帮助。

  本文基于Eclipse IDE,我们每天都使用的IDE其实提供了很多强大的功能,掌握它们,往往能够事半功倍。

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

  快捷键:Ctrl + T

  成都java技术培训

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

  成都java技术培训

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

  成都java技术培训

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

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

  成都java技术培训

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

  当然还有详细的Open Type Hierarchy

  成都java技术培训

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

  成都java技术培训

  2、Open Call Hierachy 打开调用层级

  快捷键:Ctrl+Alt+H

  成都java技术培训

  Open Call Hierachy.png

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

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

  成都java技术培训

  3、Debug 断点的灵活使用

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

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

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

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

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

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

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

  成都java技术培训

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

  成都java技术培训

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

  成都java技术培训

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

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

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

  成都java技术培训:Java源码跟踪阅读技巧

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

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

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼段35号明宇金融广场19楼1903室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街紫东段35号明宇广场2306

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市成华区建设路10号万科钻石广场B座5楼

联系电话:15023458194

公交路线:建设路中(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56