#JDK源码学习(准备篇)
本文为菜鸟整理文章,在学习过程中根据自己的学习过程和逻辑点将现有知识进行整合,有问题可评论留言,谢谢!
准备篇包含以下内容
1.jdk7的源码下载
2.源码的目录解析
3.源码的阅读顺序
http://download.java.net/openjdk/jdk7/promoted/b147/openjdk-7-fcs-src-b147-27_jun_2011.zip
##jdk7的目录解析
对于一个刚拿到源码的新人来说,面对jdk复杂的目录结构是懵逼的,根本不知道从哪看起。为了接下来的学习计划,做了研究和整理,各个jdk版本以及下载的方式导致jdk的目录存在差异,但整体来说差异不大。本人是在jdk7的基础上进行解析,以下就是对于浅层目录的解析内容。>
全称:Common Object Request Broker Architecture(通用对象请求代理架构)
不常用的多语言、分布式通讯接口,基于对象-服务机制设计,类似于 JavaBean 和微软的 COM 技术。>
2.hotspot
全称 :Java HotSpot Performance Engine(Java HotSpot性能引擎)
是 Java 虚拟机的一个实现,包含了服务器版和桌面应用程序版。利用 JIT 及自适应优化技术(自动查找性能热点并进行动态优化)来提高性能。>
3.jaxp
全称: Java API for XML Processing(处理 XML 的 Java API)
提供了解析和验证 XML 文档的能力。>
jaxp提供了几个处理报文的接口:
接口名 | 功能 | 路径 |
---|---|---|
DOM 接口 | 文档对象模型解析 | jaxp/src/org/w3c/dom |
SAX 接口 | XML 简单 API 解析 | jaxp/src/org/xml/sax |
StAX 接口 | XML 流 API | jaxp/src/javax/xml |
XSLT 接口 | XML数据和结构转换 | jaxp/src/javax/xml/transform |
4.jaxws
全称: Java API for Web Services(XML Web Services 的 Java API)
JAX-WS 允许开发者选择面向 RPC(RPC-oriented)或是面向消息(Message-oriented)的方式来实现自己的 Web Services。>
5.jdk
包含了 JDK 的实现,实现源码位于 jdk/src/share 目录,其目录结构如下图所示>
* classes 目录包含的是 Java 实现,native 目录包含的是 C++ 实现
* sample 和 demo 目录包含一些示例。
* back、instrument、javavm、npt、transport 等目录包含了实现 Java 的基础部分的 C++ 源码,在这里可以从最底层理解 Java。
6.langtools
Java 语言工具,包含 javac、javap 等实用程序的源码。>
以下类所在的位置点击此查看[^footnote]
1.java.lang
Object
String
AbstractStringBuilder
StringBuffer
StringBuilder
Boolean
Byte
Double
Float
Integer
Long
Short
Thread
ThreadLocal
Enum
Throwable
Error
Exception
Class
ClassLoader
Compiler
System
Package
Void
2.java.util
AbstractList
AbstractMap
AbstractSet
ArrayList
LinkedList
HashMap
Hashtable
HashSet
LinkedHashMap
LinkedHashSet
TreeMap
TreeSet
Vector
Queue
Stack
SortedMap
SortedSet
Collections
Arrays
Comparator
Iterator
Base64
Date
EventListener
Random
SubList
Timer
UUID
WeakHashMap
3、java.util.concurrent
ConcurrentHashMap
Executor
AbstractExecutorService
ExecutorService
ThreadPoolExecutor
BlockingQueue
AbstractQueuedSynchronizer
CountDownLatch
FutureTask
Semaphore
CyclicBarrier
CopyOnWriteArrayList
SynchronousQueue
BlockingDeque
Callable
4、java.util.concurrent.atomic
AtomicBoolean
AtomicInteger
AtomicLong
AtomicReference
5、java.lang.reflect
Field
Method
6、java.lang.annotation
Annotation
Target
Inherited
Retention
Documented
ElementType
Native
Repeatable
7、java.util.concurrent.locks
Lock
Condition
ReentrantLock
ReentrantReadWriteLock
8、java.io
File
InputStream
OutputStream
Reader
Writer
9、java.nio
Buffer
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
10、java.sql
Connection
Driver
DriverManager
JDBCType
ResultSet
Statement
11、java.net
Socket
ServerSocket
URI
URL
URLEncoder
关于jdk源码的准备篇的整理就到了,主要是帮助看文的人得到资源、找到需要的东西以及学习路径,具体怎么学、学到什么就仁者见仁智者见智了,下一篇是根据目录学习以及现有资源整理的Object类相关。
[^footnote]: lang包的路径:jdk/share/native/java