首页 > 编程语言 >你是如何阅读jdk源码的?

你是如何阅读jdk源码的?

时间:2023-08-29 14:05:37浏览次数:44  
标签:类库 函数 jdk 源码 阅读 时候 搞懂


阅读别人的代码作为开发人员是一件经常要做的事情。一个是学习新的编程语言的时候通过阅读别人的代码是一个最好的学习方法,另外是积累编程经验。如果你有机会阅读一些操作系统的代码会帮助你理解一些基本的原理。还有就是在你作为一个质量保证人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力是不能完成相应的任务。最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的。

1:找相关的书

在看相关源码时应该对程序有整体了解,比如看虚拟机时至少要知道:垃圾回收算法,Java内存布局,class文件格式,加载连接的过程...很多人看源码一点头绪都没有,就是因为不了解对应的模块是干嘛的(比如Java是模板解释器,而不是字节码解释器,call_stub()是为了找到对应模板入口),了解这方面比较好的就是看官方文档,或者看对应源码解析的书

2:工具

看类库首推idea,多用Structure,多自动生成UML图。先搞清楚接口和类之间的关系,在去分析函数。虚拟机的话还是用VS吧。vim好像不太合适。虽然我是vim粉。

3:阅读注释

有很多时候注释才说明一切,举几个很简单简单的例子,在IO阻塞的时候线程是出于BLOCKING还是RUNNABLE,线程的interrupt会中断那些函数?注释里都说的很清楚,看到函数的时候只要简单读读注释就知道了。

4:有目的性

源码量那么大,不要妄想一口气都看完。最好符合你当前的目的,比如你想搞懂多线程,你就主要看JUC,想搞懂IO就多去看NIO,想看常量池就去看ClassFileParser。看模块的时候,要注意接口大于一切,或者说函数大于一切。先不要妄想搞懂所有细节,先找几个比较关键的函数,搞懂函数的作用(比如应该仔细分析一下函数名称和参数名称)然后再往下进行。再看Java类库的时候要多注意类是不是abstract的,是不是用的模板方法,多关注函数前的修饰词,这一般说明这个函数是给谁用的。多注意这些细节而不是傻傻的过一遍逻辑,能从里面学到不少关于设计的东西。还可以注意什么地方是为了之前的设计而委曲求全的做法,毕竟一个这么多年的类库,肯定不是什么地方都是完美的。

5:实验+debug

可以多做做实验,ide的断点都很好用,记得之前看tomcat的源码就一直debug。

WRITE-BUG研发团队衷心希望【WRITE-BUG数字空间】可以给每位同学一个属于自己的秘密空间,同时祝愿大家在“公开圈子”世界里,遇见志同道合的伙伴们,因为我们与大家一样,都曾孤独前行着。

你是如何阅读jdk源码的?_Java

你是如何阅读jdk源码的?_ide_02

你是如何阅读jdk源码的?_Java_03

标签:类库,函数,jdk,源码,阅读,时候,搞懂
From: https://blog.51cto.com/u_16125770/7275787

相关文章

  • Linux高性能服务器编程阅读1:
    Linux:所有东西都是文件。socket也是可读,可写,可控制,可编程的文件描述符。I/O高级函数:1.pipe()和dup()/dup2()pipe()函数创建的两个文件描述符fd[0]和fd[1]分别构成管道的两端,往fd[1]中写入的数据可以从fd[0]中读出。且,fd[1]只能写入数据,fd[0]只能读出数据,不能颠倒。dup和dup2......
  • 个人相册管理系统-计算机毕业设计源码+LW文档
    随着社会的发展,人们生活水平的 提高,网络科技和云端技术的完善,越来越多的人喜欢通过拍照的方式把生活中美好的事物以及一瞬间记录下来,但是随着照片越来越多,传统的相册已经不能满足我们的基本需求,不方便携带,也不方便与他人分享。这个时候,网络个人相册就能解决这些问题,不光能保存大量......
  • PACS/RIS系统源码,支持多种图像处理及三维重建功能
    PACS部分主要提供医学影像获取、影像信息网络传递、大容量数据存储、影像显示和处理、影像打印等功能。RIS主要提供分诊登记、叫号、检查报告生成和打印等功能。影像存储与传输系统将二者进行无缝对接,提供了一个完整的集患者登记、图像采集、图像存储、报告产生的影像检查诊疗业务......
  • 教务管理系统-计算机毕业设计源码+LW文档
    摘 要随着社会经济的发展和进步的速度,当时的人们从某种角度看到,对信息技术的认识已经从低层次发展到高层次,进一步提升到理性思考的意识,对信息化管理工作的需要逐渐增加。当代科学的信息管理使相关信息的存储更加准确、快捷、完善,能够进一步提升工作中信息管理的效率,促进其发展。......
  • 出租车管理系统-计算机毕业设计源码+LW文档
    摘 要随着城市交通建设的快速发展,出租车行业也随之迅速发展,城市出租车车队的规模和数量都在增长,这为出租车管理公司制定了新的、更严格的标准。企业也迫切希望企业规范管理实践,使其发展经营更加科学,就必须学习尖端管理技术,并鼓励企业管理战略的发展。随着计算机技术和通信技术......
  • 论文阅读 《Pingmesh: A Large-Scale System for Data Center Network Latency Measur
    背景在我们内部产品中,一直有关于网络性能数据监控需求,我们之前是直接使用ping命令收集结果,每台服务器去ping(N-1)台,也就是N^2的复杂度,稳定性和性能都存在一些问题,最近打算对这部分进行重写,在重新调研期间看到了Pingmesh这篇论文,Pingmesh是微软用来监控数据中心网络情况......
  • 智能菜谱系统-计算机毕业设计源码+LW文档
    1.1研究背景自古以来,烹饪食品一直是人类的基本需求之一,烹饪技术的不断发展和创新,为人们带来了不同的美食体验。科技进步的同时又在不断地加快人们的生活节奏,越来越忙碌的生活节奏使得人们能够花费在制作美食上的时间越来越少;同时,随着生活水平的提高,人们对健康饮食的需求也日益增长......
  • 幼儿园管理系统-计算机毕业设计源码+LW文档
    摘 要现在人们对学前教育越来越重视,幼儿教育发展迅速,幼儿的数量也在大大增加,导致幼儿园的管理工作变得愈加繁重。以报表的方式管理幼儿园信息资料,不仅不方便园中资料的存储和查看,还加重了园中的管理工作、减低了工作效率。现在,大多数幼儿园都缺少一个向外界展现自身特色的平台,幼......
  • 从零开始:开发高效直播带货系统源码的关键步骤与源码实现
    直播带货系统结合了实时互动和购物体验,为品牌和消费者之间建立了更紧密的联系。本文将介绍开发高效直播带货系统的关键步骤,并深入探讨其中的源码实现。第一步:项目规划与架构设计在开发直播带货系统之前,首先需要进行全面的项目规划与架构设计。这包括明确系统的功能需求、用户角色、......
  • 《水浒传》阅读录
    《水浒传》阅读录版本:人文社容与堂百回本。 第三回镇关西郑大guān人过分了!赚了人家身子,还强迫人家倒贴“典身钱”!这妥妥的恶劣暴发户行径!“买楼烂尾还得月月还钱”可与之较高下,且两者guān老爷都不管。 “天色微明”鲁提辖就来处理金氏父女之事,端的是有心人。(23.7.27) ......