openjdk
—— corba:不流行的多语言、分布式通讯接口
—— hotspot:Java 虚拟机
—— jaxp:XML 处理
—— jaxws:一组 XML web services 的 Java API
—— jdk:java 开发工具包
—— —— 针对操作系统的部分
—— —— share:与平台无关的实现
—— langtools:Java 语言工具
—— nashorn:JVM 上的 JavaScript 运行时
其中Hotspot就是我们要看的JVM包
Hotspot:全称 Java HotSpot Performance Engine,是 Java 虚拟机的一个实现,包含了服务器版和桌面应用程序版。利用 JIT 及自适应优化技术(自动查找性能热点并进行动态优化)来提高性能。
Hotspot的目录结构
├─agent Serviceability Agent的客户端实现
├─make 用来build出HotSpot的各种配置文件
├─src HotSpot VM的源代码
│ ├─cpu CPU相关代码(汇编器、模板解释器、ad文件、部分runtime函数在这里实现)
│ ├─os 操作系相关代码
│ ├─os_cpu 操作系统+CPU的组合相关的代码
│ └─share 平台无关的共通代码
│ ├─tools 工具
│ │ ├─hsdis 反汇编插件
│ │ ├─IdealGraphVisualizer 将server编译器的中间代码可视化的工具
│ │ ├─launcher 启动程序“java”
│ │ ├─LogCompilation 将-XX:+LogCompilation输出的日志(hotspot.log)整理成更容易阅读的格式的工具
│ │ └─ProjectCreator 生成Visual Studio的project文件的工具
│ └─vm HotSpot VM的核心代码
│ ├─adlc 平台描述文件(上面的cpu或os_cpu里的*.ad文件)的编译器
│ ├─asm 汇编器接口
│ ├─c1 client编译器(又称“C1”)
│ ├─ci 动态编译器的公共服务/从动态编译器到VM的接口
│ ├─classfile 类文件的处理(包括类加载和系统符号表等)
│ ├─code 动态生成的代码的管理
│ ├─compiler 从VM调用动态编译器的接口
│ ├─gc_implementation GC的实现
│ │ ├─concurrentMarkSweep Concurrent Mark Sweep GC的实现
│ │ ├─g1 Garbage-First GC的实现(不使用老的分代式GC框架)
│ │ ├─parallelScavenge ParallelScavenge GC的实现(server VM默认,不使用老的分代式GC框架)
│ │ ├─parNew ParNew GC的实现
│ │ └─shared GC的共通实现
│ ├─gc_interface GC的接口
│ ├─interpreter 解释器,包括“模板解释器”(官方版在用)和“C++解释器”(官方版不在用)
│ ├─libadt 一些抽象数据结构
│ ├─memory 内存管理相关(老的分代式GC框架也在这里)
│ ├─oops HotSpot VM的对象系统的实现
│ ├─opto server编译器(又称“C2”或“Opto”)
│ ├─prims HotSpot VM的对外接口,包括部分标准库的native部分和JVMTI实现
│ ├─runtime 运行时支持库(包括线程管理、编译器调度、锁、反射等)
│ ├─services 主要是用来支持JMX之类的管理功能的接口
│ ├─shark 基于LLVM的JIT编译器(官方版里没有使用)
│ └─utilities 一些基本的工具类
└─test 单元测试
相关推荐
2. 垃圾收集器:OpenJDK 8提供了多种垃圾收集器,如Serial、Parallel、G1等,源码位于`hotspot/src/share/vm/runtime/gc_*`目录下。 3. JIT编译器:HotSpot虚拟机的Just-In-Time(JIT)编译器在`hotspot/src/share/...
《OpenJDK 7源码解析与探索》 OpenJDK是Java开发工具包(Java Development Kit)的一个开源实现,它的出现打破了Oracle JDK的封闭性,为Java开发者提供了丰富的源代码参考和学习资源。"openjdk-7-fcs-src-b147-27_...
OpenJDK 17 GA的源码分为多个模块,包括HotSpot虚拟机、JDK库、编译器、内存管理等。主要关注以下几个关键部分: 1. `hotspot`:HotSpot虚拟机是OpenJDK的核心,负责执行字节码和垃圾收集。源码包含了JVM的内存管理...
本文将围绕OpenJDK 7的源码进行深入探讨,基于文件名`openjdk-7u4-fcs-src-b22-02_may_2012`的源码包,我们将深入了解OpenJDK的架构、设计原则以及关键组件的工作原理。 首先,OpenJDK的核心组件之一是HotSpot...
例如,`src/hotspot`目录下的源码涉及了虚拟机的实现,包括解析和执行字节码的解释器、即时编译器以及内存管理系统等。 深入研究OpenJDK 18 GA的源码,对于Java开发者来说是一次宝贵的学习机会。不仅可以了解到Java...
OpenJDK Hotspot源码是Java开发者深入理解Java虚拟机(JVM)工作原理的关键资源。Hotspot JVM是Oracle公司开发的开源Java虚拟机实现,它以高效的性能优化著称,包括即时编译(JIT)和动态优化。在深入探讨Hotspot...
打开压缩包,我们看到主要的源代码目录结构,这包括以下几个核心部分: 1. **hotspot**:这是OpenJDK中的Java虚拟机(JVM)实现,名为HotSpot。HotSpot包含编译器、垃圾回收器、内存管理等关键组件,它的即时编译...
标题"openjdk-6-src-b27-26_oct_2012"指的是OpenJDK 6的源码包,具体版本为b27,发布于2012年10月26日。这个源码包包含了OpenJDK 6的全部源代码,是开发者探索Java平台内部工作原理的重要资料。 OpenJDK 6源码的...
3. **编译器与性能优化**:OpenJDK的JIT编译器(如C1和C2)位于"src/hotspot/share"目录下,通过源码分析可以了解如何将字节码转换为高效的机器代码。 4. **垃圾收集器**:OpenJDK的垃圾收集算法如Parallel GC、...
通过研究OpenJDK 8u41源码,开发者不仅可以深入理解Java语言的底层实现,还可以学习到如何优化代码、提高程序性能、设计高效的数据结构和算法。此外,对于那些想要参与Java社区贡献或者希望自定义JDK的开发者来说,...
解压OpenJDK 8源码包后,可以看到以下主要目录和文件: 1. **.jcheck**:此文件夹包含了用于检查JDK版本兼容性的脚本和配置文件。 2. **common**:这是一个包含跨平台共享代码的目录,如一些公共的类库文件。 3....
OpenJDK的源码展示了如何将Java的类结构转化为内存中的对象,包括类加载机制、实例化过程以及垃圾回收策略。 2. 字节码执行:Java的字节码由JVM负责解释执行。OpenJDK的HotSpot虚拟机中,通过即时编译(JIT)技术将...
这可能是解压后的目录结构,表示OpenJDK 1.8u302的b08构建版本。通常,解压缩后会包含各种JDK组件,如bin目录下的可执行文件(如java、javac等)、lib目录下的类库、include目录下的头文件以及docs、src等其他资源...
在分析和研究OpenJDK 8-hotspot源码时,可以重点关注以下几个方面: 1. **编译器实现**:了解C1和C2编译器的编译策略,以及它们如何选择和优化代码。 2. **垃圾回收器**:研究不同GC的实现细节,以及如何调整和优化...
- **项目结构**:OpenJDK 项目包含 HotSpot JVM、JDK 工具、核心类库等组件,每个组件都有清晰的源码目录结构,如 `src/hotspot` 代表 HotSpot 虚拟机代码,`src/jdk` 包含 Java API 的实现。 2. **编译过程** - ...
源码中包含了`java.util.concurrent`包的实现,包括各种线程安全的数据结构和并发工具类。 4. **模块系统**:Java 9引入了模块系统(Project Jigsaw),在OpenJDK 11中进一步成熟。源码中包含了模块化的实现,这...
OpenJDK源码主要分为几个关键部分:HotSpot虚拟机、语言类库(包括基础类库如java.lang和java.util)、编译器(如JIT,Just-In-Time编译器)、内存管理系统、垃圾收集器、JVM内核服务以及各种API实现。每部分都有其...
本文将围绕HotSpot源码,探讨其背后的设计理念与实现细节,帮助读者深化对Java虚拟机的理解。 首先,HotSpot虚拟机的核心功能包括类加载、内存管理、执行引擎和垃圾收集器等。在源码层面,这些功能模块的实现都是...
1. **了解结构**:首先熟悉源码的目录结构,理解各个组件和模块的作用。 2. **阅读文档**:查阅官方文档和开发者指南,了解 OpenJDK 的设计理念和实现细节。 3. **研究关键组件**:深入学习 HotSpot 虚拟机、类加载...