阅读JDK源码的经验分享

  • 理论先行。阅读某一个模块时,先搜索它的理论支撑,甚至可以先看别人的阅读经验,有了一个大致的了轮廓之后,自己再去实践。

  • 必须试用。面对一个新的类,最好是先搜索一下它的基本用法,写成一个小的示例,并从这个示例中用到的方法入手,去分析这个类。

  • 巧用调试。关于IDEA中debug的使用方式,超出了本文的讲述范围。值的注意的是,除了需要学习常用的运行时调试,还需要学习编译时调试,这个在阅读Java语言模型那块的代码时很有用。

  • 分清主次。类与类之间呈网状结构,在阅读某个类的时候,不可避免地需要先去阅读它引用的其他类。但是,如果它引用的类很复杂,则建议先放一放,做个标记,回头再读。不过,如果在阅读多个类时,其调用链最终都指向了同一个类,那么这个类就必须先拿下了。

  • 业务为先。如果一个类太过庞大,则先将其中的方法按功能归类,捋清大致的执行流程,接下来再逐个功能地去攻克。

  • 不求甚解。有些方法不需要搞清楚实现过程,只需要了解它的作用。比如一些特定领域的算法,对某些规则的解析等。

  • 以点带面。如果看懂了某一个方法,就要搜索该方法的所有应用之处,验证自己的想法是否正确,并在应用之处写下注释。哪怕理解的有误差也没事,回头有新的理解再批量修改。对于字段的阅读与理解,也建议采取此种方式。

相关推荐
式5164 分钟前
CUDA编程学习(五)线程模型定义、矩阵相加
学习·算法·矩阵
次旅行的库6 分钟前
【问渠哪得清如许-数据分析】学习笔记-上
数据库·笔记·sql·学习·postgresql·数据分析
云边散步16 分钟前
godot2D游戏教程系列二(16)
笔记·学习·音视频
不灭锦鲤23 分钟前
网络安全学习第50天(文件包含)更新
学习
Metaphor69225 分钟前
使用 Python 复制 Excel 工作表
经验分享
微露清风35 分钟前
系统性学习Linux-第八讲-进程间通信
java·linux·学习
Be for thing38 分钟前
Android 传感器硬件原理 + 功耗测试与异常定位实战(手表 / IoT / 手机通用)
android·学习·智能手机
secondyoung42 分钟前
VSCode乱码解决方案
c语言·ide·windows·经验分享·vscode·编辑器·json
问水っ42 分钟前
Qt Creator快速入门 第三版 第四章 布局管理
开发语言·qt·学习
gameboy0311 小时前
【Python学习】网络爬虫-爬取豆瓣电影评论
爬虫·python·学习