从今天开始简单开始读一遍jdk的源码,估计这个时间会很长,慢慢啃吧。。。。(首先说一句抱歉,因为很多图都是直接百度扣的,图太多了不能为每一个图附上原版链接,不好意思!)
在网上看了很多的教程,读源码有一定的顺序,按照包的顺序:java.lang包,java.util包,java.util.concurrent包,java.util.concurrent.atomic包,java.lang.reflect包,java.lang.annotation包,java.util.concurrent.locks包,java.io包,java.nio包,java.sql包,java.net包;
大概数了一下,有11个包,暂时就把这11个包读完应该就差不多了,应该可以对jdk源码会理解很多,而且中间可能会涉及到一些其他的知识,我也是新手,也顺便学一下;
当然也不可能把所有的方法都慢慢的去分析、去读,重点看一些比较重要的方法看看,很多的重载方法和不常用的方法可以选择性的省略。。。适合自己的才是最好的!比如一个方法基本上都用不到的,我们就简单瞄两眼就可以了,用的频繁的方法可以去看看实现原理。
1.概述
对于java.lang包我们可以说是用得很多了,但是一直没有系统的整理一下,比如一个很熟悉的类Object,如果让你说说这个类中有哪些方法啊?(亲身遇到的一个面试题。。。)
先看看这个包下常用都有些什么类吧,借来的一个图,1优先级最高,4优先级最低
1) Object 1 2) String 1 3) AbstractStringBuilder 1 4) StringBuffer 1 5) StringBuilder 1 6) Boolean 2 7) Byte 2 8) Double 2 9) Float 2 10) Integer 2 11) Long 2 12) Short 2 13) Thread 2 14) ThreadLocal 2 15) Enum 3 16) Throwable 3 17) Error 3 18) Exception 3 19) Class 4 20) ClassLoader 4 21) Compiler 4 22) System 4 23) Package 4 24) Void 4