1、先说一下源码解析的过程:JDK–>JRE–>JVM(以openJDK替代)
留意:这儿要掌握jdk和jre和jvm她们各自是啥?及其它们的影响才可以再次。这儿先上一章从网络上免费下载的关联图方便了解
2、小编当地的jdk是oraclejdk,jvm地理位置便是组装的jdk。jdk下jre下bin下server下的jvm.dll。也就是F:Javajdkjdk1.7.0_60jrebinserver这儿的jvm.dll。由于jvm.dll不能看,因此这儿以免费下载的openjdk源码做为解析(
openjdk-7u40-fcs-src-b43-26_aug_2013.zip)。
3、openjdk源码文件目录构造这儿图中:
表述:
openjdk
—— corba:不时兴的多语言表达、分布式系统通信插口
—— hotspot:Java vm虚拟机
—— jaxp:XML 解决
—— jaxws:一组 XML web services 的 Java API
—— jdk:java 开发设计工具箱
—— —— 对于电脑操作系统的一部分
—— —— share:与网站不相干的完成
—— langtools:Java 语言工具
—— nashorn:JVM 上的 JavaScript 运作时
4、由于要掌握jvm虚拟机。因此进到hotspot文件目录下
在其中Hotspot便是大家需看的JVM包
Hotspot:全名 Java HotSpot Performance Engine,是 Java vm虚拟机的一个完成,包括了服务器版和桌面应用程序流程版。运用 JIT 及响应式开发技术(全自动搜索特性网络热点并实现动态性提升)来增强特性。
应用 java -version 可以查询 Hotspot 的版本号。
- [machao@dev ~]$ java -version
- openjdk version “1.8.0_144”
- OpenJDK Runtime Environment (build 1.8.0_144-b01)
- OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)
- [machao@dev ~]$
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)便是版本号。
因此:大家详细说明hotspot文件目录构造
├─agent Serviceability Agent的手机客户端完成
├─make 用于build出HotSpot的各种各样环境变量
├─src HotSpot VM的源码
│ ├─cpu CPU有关编码(汇编器、模版编译器、ad文档、一部分runtime函数在这儿完成)
│ ├─os 实际操作系有关编码
│ ├─os_cpu 电脑操作系统 CPU的组成有关的编码
│ └─share 服务平台不相干的相通编码
│ ├─tools 专用工具
│ │ ├─hsdis 反编译软件
│ │ ├─IdealGraphVisualizer 将serverc语言编译器的中间代码数据可视化的专用工具
│ │ ├─launcher 运行程序流程“java”
│ │ ├─LogCompilation 将-XX: LogCompilation輸出的日志(hotspot.log)梳理成更易于阅读文章的文件格式的专用工具
│ │ └─ProjectCreator 形成Visual Studio的project文件的专用工具
│ └─vm HotSpot VM的关键编码
│ ├─adlc 服务平台软件更新(上边的cpu或os_cpu里的*.ad文档)的c语言编译器
│ ├─asm 汇编器插口
│ ├─c1 clientc语言编译器(又被称为“C1”)
│ ├─ci 动态性c语言编译器的公共文化服务/从动态性c语言编译器到VM的插口
│ ├─classfile 类档案的解决(包含类载入和系统软件符号表等)
│ ├─code 动态性产生的编码的管理方法
│ ├─compiler 从VM启用动态性c语言编译器的插口
│ ├─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 serverc语言编译器(又被称为“C2”或“Opto”)
│ ├─prims HotSpot VM的对外开放插口,包含一部分标准库的native部分和JVMTI完成
│ ├─runtime 运作时适用库(包含进程管理方法、c语言编译器生产调度、锁、反射面等)
│ ├─services 主要是用于适用JMX之类的监管作用的插口
│ ├─shark 根据LLVM的JITc语言编译器(最新版里没应用)
│ └─utilities 一些主要的java工具
└─test 单元测试卷
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。