JDK源码学习手册(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40806611/article/details/82217675

#JDK源码学习(准备篇)

本文为菜鸟整理文章,在学习过程中根据自己的学习过程和逻辑点将现有知识进行整合,本人玻璃心小女子一枚,新手上路,可以接收指教,但不接受指点,谢谢!

准备篇包含以下内容
1.jdk7的源码下载
2.源码的目录解析
3.源码的阅读顺序


jdk7源码的下载路径

http://download.java.net/openjdk/jdk7/promoted/b147/openjdk-7-fcs-src-b147-27_jun_2011.zip

##jdk7的目录解析

对于一个刚拿到源码的新人来说,面对jdk复杂的目录结构是懵逼的,根本不知道从哪看起。为了接下来的学习计划,做了研究和整理,各个jdk版本以及下载的方式导致jdk的目录存在差异,但整体来说差异不大。本人是在jdk7的基础上进行解析,以下就是对于浅层目录的解析内容。>

jdk7的目录结构如下:

这里写图片描述
1.corba

全称: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

展开阅读全文

没有更多推荐了,返回首页