以前读过一些 JDK 常用的源码。当时的做法是在 IDE 打开源码文件,同时打开官方文档和谷歌翻译,一边读一边翻译,那时觉得还颇有收获。但是,由于基础薄弱,为了加快速度,有很多不理解的地方跳过了。
现在觉得很多地方有必要再仔细分析和理解一下。不再逐行去读,而是有的放矢,重点去搞清楚其中关键部分的实现原理,有些硬骨头还是要啃的,毕竟这东西肯定不能靠记忆的。而且,很多知识点只有自己动手写出来了、或者给别人讲清楚的时候,才算真正掌握了。
目前计划主要分为以下几部分(后面序号为优先级1-4,优先级递减):
- java.lang
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
- java.util
1) AbstractList 1
2) AbstractMap 1
3) AbstractSet 1
4) ArrayList 1
5) LinkedList 1
6) HashMap 1
7) Hashtable 1
8) HashSet 1
9) LinkedHashMap 1
10) LinkedHashSet 1
11) TreeMap 1
12) TreeSet 1
13) Vector 2
14) Queue 2
15) Stack 2
16) SortedMap 2
17) SortedSet 2
18) Collections 3
19) Arrays 3
20) Comparator 3
21) Iterator 3
22) Base64 4
23) Date 4
24) EventListener 4
25) Random 4
26) SubList 4
27) Timer 4
28) UUID 4
29) WeakHashMap 4
- java.util.concurrent
1) ConcurrentHashMap 1
2) Executor 2
3) AbstractExecutorService 2
4) ExecutorService 2
5) ThreadPoolExecutor 2
6) BlockingQueue 2
7)AbstractQueuedSynchronizer 2
8)CountDownLatch 2
9) FutureTask 2
10)Semaphore 2
11)CyclicBarrier 2
13)CopyOnWriteArrayList 3
14)SynchronousQueue 3
15)BlockingDeque 3
16) Callable 4
- java.util.concurrent.atomic
1) AtomicBoolean 2
2) AtomicInteger 2
3) AtomicLong 2
4) AtomicReference 3
- java.lang.reflect
1) Field 2
2) Method 2
- java.lang.annotation
1) Annotation 3
2) Target 3
3) Inherited 3
4) Retention 3
5) Documented 4
6) ElementType 4
7) Native 4
8) Repeatable 4
- java.util.concurrent.locks
1) Lock 2
2) Condition 2
3) ReentrantLock 2
4) ReentrantReadWriteLock 2
1) File 3
2) InputStream 3
3) OutputStream 3
4) Reader 4
5) Writer 4
- java.nio
1) Buffer 3
2) ByteBuffer 4
3) CharBuffer 4
4) DoubleBuffer 4
5) FloatBuffer 4
6) IntBuffer 4
7) LongBuffer 4
8) ShortBuffer 4
- java.sql
1) Connection 3
2) Driver 3
3) DriverManager 3
4) JDBCType 3
5) ResultSet 4
6) Statement 4
1) Socket 3
2) ServerSocket 3
3) URI 4
4) URL 4
5) URLEncoder 4