阅读JDK源码的经验分享

news2024/11/29 4:34:56

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Camtasia mac版怎么加字幕 Camtasia mac版怎么打马赛克

在视频制作过程中,字幕和马赛克是两项非常常用的编辑功能,添加字幕可以提高观众的观看体验,添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件,在具备基本的录制和视频编辑功能的同时&#xf…

麻匪音频识别-网易云-BetterNCM(目前仅网易云支持)

麻匪音频识别-网易云-BetterNCM(目前仅网易云支持) 这个东西很帅的哦,你网易云放什么歌他就联动什么,自动变 首先下载一点东西 1.steam 2.steam里面搜索wallpaper下载(这个免费的哈) 3.然后到这个界面 搜…

【软考】系统集成项目管理工程师(十一)项目人力资源管理【2分】

一、 人力资源管理【ITO口诀版】 二、 规划人力资源管理 1、定义 (1)确定项目的角色、职责以及汇报关系,并编制人员配备管理计划 (2)作为项目最初阶段的一部分。但是这一过程的结果应当在项目的整个生命周期中进行经…

GoLand GC(垃圾回收机制)简介及调优

GC(Garbage Collector)垃圾回收机制及调优 简单理解GC机制 其实gc机制特别容易理解,就是物理内存的自动清理工。我们可以把内存想象成一个房间,程序运行时会在这个房间里存放各种东西,但有时候我们会忘记把不再需要的东西拿出去&#xff0c…

Go学习第十五章——Gin参数绑定bind与验证器

Go web框架——Gin(参数绑定bind与验证器) 1 bind参数绑定1.1 JSON参数1.2 Query参数1.3 Uri绑定动态参数1.4 ShouldBind自动绑定 2 验证器2.1 常用验证器2.2 gin内置验证器2.3 自定义验证的错误信息2.4 自定义验证器 1 bind参数绑定 在Gin框架中&#…

Unity Meta Quest 一体机开发(三):Oculus Integration 基本原理、概念与结构+玩家角色基本配置

文章目录 📕教程说明📕输入数据📕Oculus Integration 处理手部数据的推荐流程📕VR 中交互的基本概念📕Oculus Integration 中的交互流程📕配置一个基本的玩家物体⭐OVRCameraRig⭐OVRInteraction⭐OVRHandP…

MC红显材质包安装

红显材质包安装 UP介绍视频 https://www.bilibili.com/video/BV1ML4y1u7nd/?vd_source3b8afcc2613780d7607382bae034945a 材质包下载地址: 需要 OptiFine 或 CITResewn 模组(以后还会支持其他自定义贴图模组) 下载:https://xek…

【python与数据结构】(leetcode算法预备知识)

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ python与数据结构 Python 中常见的数据类型数据结构1.数组(Array)2.链表(Linked List)3.哈希表(Hash Table)4.队列(Queue&#x…

7.多线程之单例模式

单例模式 文章目录 单例模式1. 什么是单例模式2. 饿汉模式3. 懒汉模式3.1 单线程版:3.2 多线程版 1. 什么是单例模式 单例模式是一种设计模式,常见的设计模式还有工厂模式、建造者模式等。 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码…

Java练习题2022-1

HashSet是Java中常用的Set集合,向HashSet集合中添加数据对象时,首先会调用对象的hashCode()方法获取哈希码,根据哈希码计算对象的存储位置,如果相应位置上已经有数据对象,则会调用对象的equals()方法判断新加入的对象与…

【HarmonyOS】鸿蒙操作系统架构

HarmonyOS架构 一. 鸿蒙系统定位二. 架构整体遵从分层设计三. HarmonyOS具有的技术特性四. HarmonyOS有三大特征 其它相关推荐: 软考系统架构之案例篇(架构设计相关概念) 系统架构之微服务架构 系统架构设计之微内核架构 所属专栏:系统架构设计师 一. 鸿…

分类预测 | Matlab实现KOA-CNN-LSTM-selfAttention多特征分类预测

分类预测 | Matlab实现KOA-CNN-LSTM-selfAttention多特征分类预测 目录 分类预测 | Matlab实现KOA-CNN-LSTM-selfAttention多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现KOA-CNN-LSTM-selfAttention开普勒算法优化卷积长短期记忆神经网络融合…

Camtasia Mac 2023版怎么给视频加字幕

在视频制作过程中,字幕和马赛克是两项非常常用的编辑功能,添加字幕可以提高观众的观看体验,添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件,在具备基本的录制和视频编辑功能的同时&#xf…

Python运维学习Day01-文件基本操作

这里写自定义目录标题 1.遍历目录下所有的文件1.1 这里主要利用os.walk 函数的功能 2. 计算文件的 MD5 值3. 我们组合下两个函数,遍历下某个文件夹下的文件的md5码 1.遍历目录下所有的文件 def getFileName(directory):file_list []for dir_name, sub_dir,file_na…

CC002:ContextCapture倾斜摄影建模流程

摘要:本文主要介绍cc倾斜摄影建模流程,包括工程创建、影像添加、任务序列路径指定、空三、像控点的导入与刺点、空三优化、三维重建、定义生产三维产品的格式等流程,其中实验数据来源为多普云职业教育平台。 一、实验数据获取 本实验使用cc软…

【深度学习】吴恩达课程笔记(三)——参数VS超参数、深度学习的实践层面

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 吴恩达课程笔记——参数VS超参数、深度学习的实践层面 六、参数VS超参数1.参数和超参数的区别2.什么是超参数?3.如何寻找超参数的最优值? 七、深度学习的实践层面1.训练 / 验证 / 测试集(T…

python 应用 之 转图片格式webp

需求:将图片转成webp格式 目录 一、python 图片转webp格式 1、安装python 2、webp 依赖的包 1)、PIP 安装Pillow 2)、VSCODE 选择python版本 2.1)、测试是否安装成功 2.2)、vscode选择python版本 3、python程序 1&#…

【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 笔记链接 【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础 吴恩达课程笔记——浅层神经网络、深层神经网络 四、浅层神经网络1.双层神经网络表示2.双层神经网络的前向传播第一层前向传播第二层前…

数据库简史:多主数据库架构的由来和华为参天引擎的机遇

注:本文发表后,收到了很多后台反馈,其中关于大型机的早期成就不容省略。微调重发本文,纯属个人观点,错谬之处,仍然期待指正。 2023年10月13日,在北京举办的“2023金融业数据库技术大会"上&…

前端 :用HTML和css制作一个小米官网的静态页面

1.HTML&#xff1a; <body><div id "content"><div id "box"><div id "top"><div id "top-left"><span id "logo">MI</span><span id "text-logo">小米账…