# 阅读顺序
以下是本文档的阅读源码的顺序,标题为包名,后面的序号代表的是优先级,1~4 优先级依次递减。
# java.lang
该包里其实就是 Java 的基本语法,包括了各种基本数据类型(Integer
、Long
、Double
等)、各种基本类(Object
、Class
、Enum
、Thread
等)。
Object 1 String 1 AbstractStringBuilder 1 StringBuffer 1 StringBuilder 1 Boolean 2 Byte 2 Double 2 Float 2 Integer 2 Long 2 Short 2 Thread 2 ThreadLocal 2 Enum 3 Throwable 3 Error 3 Exception 3 Class 4 ClassLoader 4 Compiler 4 System 4 Package 4 Void 4
Copied!
# java.util
该包里放的都是一些 Java 的基本工具,包括各种容器和集合,如List
、Map
、Set
等。
AbstractList 1 AbstractMap 1 AbstractSet 1 ArrayList 1 LinkedList 1 HashMap 1 HashTable 1 HashSet 1 LinkedHashMap 1 LinkedHashSet 1 TreeMap 1 TreeSet 1 Vector 1 Queue 1 Stack 1 SortedMap 2 SortedSet 2 Collections 2 Arrays 2 Comparator 2 Iterator 2 Base64 3 Date 3 EventListener 4 Random 4 SubList 4 Timer 4 UUID 4 WeakHashMap 4
Copied!
# java.util.concurrent
这是一个非常著名的,简称JUC
的包,里面包含了 Java 并发和多线程编程相关的代码。
ConcurrentHashMap 1 Executor 2 AbstractExecutorService 2 ExecutorService 2 ThreadPoolExecutor 2 BlockingQueue 2 AbstractQueuedSynchronizer 2 CountDownLatch 2 FutureTask 2 Semaphoer 2 CyclicBarrier 2 CopyOnWriteArrayList 3 SynchronousQueue 3 BlockingDeque 3 Callable 3
Copied!
# java.util.concurrent.atomic
AtomicBoolean 2 AtomicInteger 2 AtomicLong 2 AtomicReference 3
Copied!
# java.util.function
这里面包括了 Java 函数式编程的常见接口和代码。
# java.util.stream
# java.lang.reflect
该包包含了 Java 反射基本元素相关的代码。
Field 2 Method 2
Copied!
# java.lang.annotation
该包包含了 Java 注解基本元素相关的代码。
Annotation 3 Target 3 Inherited 3 Retention 3 Documented 4 ElementType 4 Native 4 Repeatable 4
Copied!
# java.util.concurrent.locks
Lock 1 Condition 2 ReentrantLock 2 ReentrantReadWriteLock 2
Copied!
# java.io
该包包含了 Java 传统的输入输出的代码,主要是面向字节和流的 IO 操作。
File 2 InputStream 2 OutputStream 2 Reader 3 Writer 3
Copied!
# java.nio
该包包含了 Java 非阻塞的 IO 相关的代码,主要是面向缓冲、通道以及选择的 IO 操作。
Buffer 3 ByteBuffer 4 CharBuffer 4 DoubleBuffer 4 FloatBuffer 4 IntBuffer 4 LongBuffer 4 ShortBuffer 4
Copied!
# java.sql
Connection 3 Driver 3 DriverManager 3 JDBCType 3 ResultSet 3 Statement 3
Copied!
# java.time
该包包含了 Java 新日期等相关的代码,比如典型的有DateTimeFormatter
等类。
# java.math
该包主要包含了一些高精度运算的数据支持类。
# java.net
该包主要包含了 Java 网络通信,比如Socket
通信等相关的源代码。
Socket 2 ServerSocket 3 URI 3 URL 3 URLEncoder 4
Copied!