语言发展阶段
Java技术体系
Java技术体系包
- java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API类库
- 来自商业机构和开源社区的第三方Java类库
JDK
JDK(Java Development Kit): 用于支持Java开发的最小环境
- Java程序设计语言
- Java虚拟机
- Java API类库
JRE
JRE(Java Runtime Environment)
- Java API类库中的Java SE API子集
- Java虚拟机
Hotspot源码结构
hotsopt
|--agent Serviceability Agent的实现
|--make 用来build出 Hotspot 的各种配置文件
|--src Hotspot VM的源代码
| |--cpu CPU相关代码
|--os 操作系统相关代码
|--os_cup 操作系统 +CPU 组合的相关代码
|__share 平台无关的通用代码
|--tools 工具
| |--hsdis 反汇编插件
|--IdealGraphVisualizer 将server编译器的中间代码可视化的工具
|--launcher 启动程序"java"
|--LogComilation 将-XX:LogComilation输出的日志(hotsopt.log)整理成更容易阅读的格式工具
|--ProjectCreater 生成Visual Stadio的project文件工具
|__vm hotspot vmde 核心代码
|--ablc 平台描述文件(上面的cpu或os_cpu里的*.ad文件)的编译器
|--asm 汇编器接口
|--cl client编译器
|--ci 动态编译器的公共服务/接口
|--classfile 类文件的处理(包括类加载和系统符号表等)
|--code 动态生成的代码管理
|--compiler 编译器接口
|--gc_implementation GC的实现
| |--concurrentMarkSweep concurrent Mark Sweep GC的实现
|--gl 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编译器
|--prims hotspot vm的对外接口,包括部分标准库的native部分和JVMTT实现
|--runtime 运行时支持库(包括线程管理,编译器调度,锁,反射等)
|--services 主要用来支持JMX之类的管理功能接口
|--sharks 基于LLVM的JIT编译器(官方版本里没有使用)
|--utilities 一些基本的工具类
|__test 单元测试