Java 源码阅读的真实体会 Java 源码阅读的真实体会 刚刚在论坛不经意间,看到有关源码阅读的帖子。回想本人前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术根底+强烈的求知欲+耐心。 说到技术根底,我打个比方吧,假设你从来没有学过 Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是特别难从中吸收到营养的,特别是《深化 Java 虚拟机》这类书,别人觉得好,未必适宜现在的你。 尽管 Tomcat 的源码特别美丽,但我绝不建议你一开始就读它。我文中会专门谈到这个,临时不展开。 强烈的求知欲,我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,根本上确实是这几个层次(特别偏激哦): 1、只关注工程本身,不明白就 baidu 一下。 2、除了做好工程,还会阅读和工程有关的技术书籍,看 wikipedia。 3、除了阅读和工程相关的书外,还会阅读 IT 行业的书,比方学 Java 时,还会去理解函数语言,如 LISP。 4、找一些开源工程看看,大量试用第三方框架,还会写写 demo。 5、阅读根底框架、J2EE 标准、Debug 效劳器内核。 大多数程序都是第 1 种,到第 5 种不光需要浓重的兴趣,还需要勇气:我能读明白吗?事实上,你可以读明白的。 耐心,确实特别重要。由于你极少看到阅读源码的指导性文章或书籍,也没有人要求或建议你读。你读的过程中常常会卡住,而一卡主可能就陷进了迷宫。这时,你需要做的可能是临时中断一下,再从外围看看它:如 API 构造、框架的图。 我就说说如何读 Java 源码,以及我曾经的阅读感悟。 Java 源码初接触 假设你进展过一年左右的开发,喜爱用 eclipse 的 debug 功能。好了,你现在就有阅读源码的技术根底。 我建议从 JDK 源码开始读起,这个直截了当和 eclipse 集成,不需要任何配置。 可以从 JDK 的工具包开始,也确实是我们学的《数据构造和算法》Java 版,如 List 接口和 ArrayList、LinkedList 实现,HashMap 和 TreeMap 等。这些数据构造里也涉及到排序等算法,一举两得。 面试时,考官总喜爱征询 ArrayList 和 Vector 的区别,你花 10 分钟读读源码,可能一辈子都忘不了。 然后是 core 包,也确实是 String、StringBuffer 等。 假设你有一定的 Java IO 根底,那么不妨读读 FileReader 等类。我建议大家看看《Java In A Nutshell》,里面有整个 Jav...