`

Open JDK 源码结构

    博客分类:
  • JVM
 
阅读更多

HotSpot VM(Oracle JDK 6/Oracle JDK 7/OpenJDK 6/OpenJDK 7) 他们的源码结构基本都差不多

├─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                             单元测试

 

分享到:
评论

相关推荐

    open jdk8 源码 ~~~

    open jdk8 源码

    open jdk1.8源码

    然而,值得注意的是,Oracle JDK中的"sun"包在OpenJDK中是不公开的,这部分源码通常包含Oracle特定的实现和优化,因此在OpenJDK中难以找到。这正是标题中提到的问题,但即便如此,OpenJDK依然提供了大量可供学习和...

    IDEA如何查看JDK源码

    - 当你打开JDK源码时,IDEA通常会显示一个带有“Open in New Tab”(在新标签页中打开)按钮的提示框,点击它可以更方便地查看源码。 - 使用`Ctrl + Shift + F7`(Mac用户使用`Cmd + Shift + F7`)可以在当前文件...

    java jdk1.8 源码

    4. 在Eclipse的Package Explorer或Project Explorer视图中,可以看到源码结构,如`launcher`、`org`、`javax`、`java`和`com`等,这些都是Java的核心包名。 5. 可以通过双击或右键点击某个类,选择"Open Declaration...

    open jdk 8 源码 、虚拟机等源码

    查看JDK8源码时,发现com.sun.*、sun.*、org.* 等包下的类没有在src.zip源码里面,所有下载了一份全量的源码包,除了有Java源码还有虚拟机源码,及本地方法源码。

    在Eclipse或MyEclipse中引入JDK源码 .doc

    ### 在Eclipse或MyEclipse中引入JDK源码 #### 背景与意义 在进行Java开发的过程中,特别是当开发者需要深入了解某些类、接口或方法的具体实现时,查看其源码是一种非常有效的学习手段。然而,在使用Eclipse或...

    openjdk源码1

    OpenJDK,全称为Open Source Java Development Kit,是Java开发工具集的一个开源实现,它为Java平台提供了一个开放源代码的实现,包括HotSpot虚拟机、Java类库和开发工具等核心组件。本文将围绕OpenJDK 7的源码进行...

    openjdk8源码官网下载地址

    ### OpenJDK 8 源码下载及结构解析 #### 一、OpenJDK 8 概述 OpenJDK(Open Java Development Kit)是Java Platform, Standard Edition (Java SE)的一个开源实现,它完全遵循Java SE的技术规范。OpenJDK 8是基于...

    open-jdk-8源码包(包括native源码)

    openjdk 8 的源代码包,其中包含了native部分的源代码(c语言编写),在使用集成开发环境查看源代码时,无法查看到的native源码可以在这里找到。

    jdk 1.5源码 java学习必备

    jdk 1.5源码 之前csdn上有看到 但是明显大小不对了 完整的应该有56M 由于大小限制 分割成4部分上传的

    open jdk的60版本源码

    3. **记录类(Record Classes)**:自Java 14开始引入的实验特性,Java 18进一步完善,记录类提供了简洁的语法来定义不可变的数据结构,简化了编码和调试。 4. **开关表达式(Switch Expressions)**:自Java 12起...

    javajdk8源码-open-jdk:open-jdk源码jdk7:http://download.java.net/openjdk/jdk

    OpenJDK是JDK的一个开源实现,其源代码开放给公众查看和修改,这符合开放源码的定义,也是"系统开源"这一标签的体现。 OpenJDK项目始于2006年,由Sun Microsystems发起,后来Oracle收购了Sun并继续推动OpenJDK的...

    javajdk源码解析-Code-Adventure:Java基础、JDK源码解析、程序人生

    jdk源码解析 :open_book: ​程序猿探险记 Kong子:“学而不思则罔,思而不学则殆。” :memo: ​目录 Java基础 Java如何将一个Java对象序列化到文件里 静态代理与动态代理 | 初始进洞(上) 静态代理与动态代理 | 初识...

    JDK源码选读.pdf

    学Java的最佳途径之一就是坚持阅读它的源码,不是JRE的源码,那些你读了也吸收不了多少,而是常用类库的源码,就是我们常用的那些类,尤其是集合类。源码里蕴含着丰富的代码技巧,设计模式,编程风格,绝对是大师级...

    bcpkix-jdk15on-165、bcprov-jdk15on-165源码包、文档等

    它包含了许多用于实现SSL/TLS、S/MIME和OpenPGP标准的类库。 2. **BCProv-jdk15on-165**: BCProv是Bouncy Castle的加密服务提供者,它扩展了Java Cryptography Extension (JCE) 和 Java Cryptography ...

    openjdk 7u源码(2)

    openjdk 7u的源码,可以用来编译jvm(已编译成功),深入理解java虚拟机。由于资源上传限制,7u和6两个源码压缩为3个分卷,请下载3个分卷放在同一文件夹中再解压。自用资源,放心下载。

    open-jdk1.8-analysis:JDK1.8源码分析笔记,设置到IDE中后,点击方法实现即可看到源码中文分析,节省阅读源码时间-看

    open-jdk1.8分析 JDK原始分析注释,原始版本打开JDK1.8,目的是让用户节省阅读原始时间 使用方法 IDEA配置方法想法->文件->项目结构-> SDK->源路径->单击+号后->选择克隆的项目目录Eclipse配置方法Eclipse-> Windows...

    最新版本openJDK21.0.3-9源码包

    OpenJDK(Open Java Development Kit),是一个开源的、包含Java编译器、JVM(Java虚拟机)以及Java运行时库的软件开发工具包。 最新版本的OpenJDK是21.0.3_9。这个版本是在先前版本的基础上进行了一些重要的改进和...

    JDK8 底层C++源码 OpenJDK8(包含JDK8及hotspot)

    JDK(Java Development Kit)是Oracle公司提供的Java开发工具包,而OpenJDK(Open Java Development Kit)则是一个开源版本的JDK实现,两者都包含了Java运行环境(JRE)和开发工具。JDK8是Java编程语言的一个重要...

Global site tag (gtag.js) - Google Analytics