2.JDK源码阅读之目录介绍

1.文章摘要

通过这篇文章来简单、概括性的介绍下openjdk 1.8 的各个目录的作用

2.一级目录介绍

通过idea打开openjdk的项目代码,如下图所示
在这里插入图片描述

2.1 common

这个目录包含了一些构建系统和工具的共享代码。

2.1 corba

这个目录包含了CORBA(Common Object Request Broker Architecture)的实现。CORBA是一种用于分布式对象的标准。

2.3 hotspot

这个目录包含了HotSpot虚拟机的实现。HotSpot是JDK的核心虚拟机,负责字节码的解释和编译。

2.4 jaxp

这个目录包含了JAXP(Java API for XML Processing)的实现。JAXP提供了用于处理XML的API。

2.5 jaxws

这个目录包含了JAX-WS(Java API for XML Web Services)的实现。JAX-WS提供了用于开发Web服务的API。

2.6 jdk

这个目录包含了JDK的核心库和工具。这个目录是最重要的部分之一,包含了标准库、工具和其他核心组件。我们java开发常用的类就在这个里面。

2.7 langtools

这个目录包含了语言工具,包括Java编译器(javac)和其他开发工具。

2.8 make

这个目录包含了构建系统的脚本和配置文件。用于控制如何构建整个JDK。

2.9 nashorn

这个目录包含了Nashorn JavaScript引擎的实现。Nashorn是一个基于JVM的JavaScript引擎。

2.10 test

这个目录包含了各种测试代码和测试框架,用于验证JDK的功能和性能。

2.11 LICENSE

这个文件包含了JDK的许可证信息。

2.12 README

这个文件包含了JDK的基本信息和构建指南。

2.13 THIRD_PARTY_README

这个文件包含了JDK中使用的第三方库和工具的信息。

2.14 configure

这个脚本用于配置构建环境,检查系统依赖和配置选项。

2.15 Makefile

这个文件是GNU Make构建系统的入口点,用于启动构建过程。

3.子目录介绍

3.1 jdk

jdk目录的内容如下图所示,可以看到就是我们开发中常用的jdk的源代码,比如并发编程的JUC包
在这里插入图片描述
这个包的各个目录的作用如下:

3.1.1 src

这个目录包含了JDK的源代码,按照模块和包的层次结构进行组织。

3.1.1.1 share

这个目录包含了跨平台共享的源代码。具体子目录包括:

  • classes: 包含了Java类文件的源代码,按包名组织。
  • native: 包含了本地代码(通常是C/C++),用于实现某些底层功能。
  • conf: 包含了配置文件,如java.security等。
  • legal: 包含了法律文件和许可证信息。
3.1.1.2 macosx, windows, linux, solaris

这些目录包含了特定平台的实现代码。每个目录的结构与share目录类似,但只包含特定平台相关的代码。

3.1.2 make

这个目录包含了构建系统的脚本和配置文件。用于控制如何构建整个JDK。

3.1.3 test

这个目录包含了各种测试代码和测试框架,用于验证JDK的功能和性能。

  • jdk: 包含了针对JDK各个模块的测试代码。
  • lib: 包含了测试框架和辅助工具。

3.1.4 src/share/classes

这个目录包含了Java类文件的源代码,按包名组织。以下是一些重要的包:

  • java.net: 包含了网络相关的类,如java.net。
  • java.nio: 包含了NIO(非阻塞I/O)相关的类。
  • java.rmi: 包含了远程方法调用(RMI)相关的类。
  • javax: 包含了扩展API,如javax.annotation、javax.crypto等。

3.1.5 src/share/native

这个目录包含了本地代码(通常是C/C++),用于实现某些底层功能。

  • java.net: 包含了网络相关的本地实现。
  • java.nio: 包含了NIO相关的本地实现。
  • java.security: 包含了安全相关的本地实现。

3.2 common

在OpenJDK项目中,common目录包含了一些构建系统和工具的共享代码。这个目录通常用于存放在多个子项目中共享使用的脚本、配置文件和工具。以下是对common目录下各个子目录的详细介绍:

3.2.1 autoconf

autoconf目录包含了用于配置构建环境的脚本和宏文件。具体内容包括:

  • generated-configure.sh: 这是一个由autoconf生成的配置脚本,用于检查系统环境和依赖。

3.2.2 bin

bin目录包含了一些构建和开发工具的脚本。这些脚本可能用于辅助构建过程、测试和其他开发活动。

系列文章

1.JDK源码阅读之环境搭建

2.JDK源码阅读之目录介绍

3.jdk源码阅读之ArrayList(上)

4.jdk源码阅读之ArrayList(下)

5.jdk源码阅读之HashMap

6.jdk源码阅读之HashMap(下)

7.jdk源码阅读之ConcurrentHashMap(上)

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

至真源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值