例如这篇文章的作者就是通过阅读jdk的源码来得到一些结论
这些人都是如何去阅读的?
为什么我看源码,无法获取到有效的信息呢?
阅读源码之前是否需要具备某些条件呢?
我个人的观点是从功能入口开始看源码,比如博文里说的HashMap,常用的就是put、get、contains之类的方法,那就可以先看这些方法是怎么做的。
如果看的有问题,可以再从构造方法开始看。
其实就是,你怎么用、从哪开始用的,就从哪入手。
当然大牛的源码都是各种可扩展,所以,有写地方不明白可以先记下来,然后跳过看后面的,没准就明白了前面的问题了。
说到具备的条件,其实就是最基本的一些数据结构需要知道,什么数组、链表之类的,这些都是很基础的数据结构知识
我只是点进去看了下标题。
讲一下我的看法吧。阅读源码嘛。首先那HashMap做例子
最重要的当然是去看看 HashMap 中的 put 和 get方法是怎么写的, 其次还有数据是以什么形式存储的
还有它是怎么扩容的
带着这样的思考 你去看源码 你看这put 或者 get 你就会发现这些方法里面 还牵扯到源码中其他方法。
如此就不得不把这个类的所有变量加方法都看一遍,还有实现的Map接口又是怎么样的如此如此。
这样就能get到有用的信息了。
然后 就会思考 平常说TreeMap 和 HashMap 的有序和无序性质。你通过查询他们的源码就可以自己探索了。
再其次,还有常用的ArrayList 这样的 还有LinkedList 你不想看看他们的区别吗 带着这样的思考去读代码
最后,其实我也就说说,我也没仔细看过
如果是jvm可直接下Hotspot的源码,也包含jdk