crm系统java源代码-开源crm系统 java
1、先说一下源码解析的过程:JDK-->JRE-->JVM(换成了openJDK)
注意:这里的jdk、jre、jvm是什么意思? 并且他们的关系可以继续下去。为了便于理解,这里附上上一章从网上下载的关系图
2.笔者本地的jdk是oraclejdkcrm系统java源代码,jvm的位置是安装好的jdk。 jdk下jre下bin下server下jvm.dll。 即F:\Java\jdk\jdk1.7.0_60\jre\bin\server中的jvm.dll。 因为看不到jvm.dll,这里把下载的openjdk源码作为分析(openjdk-7u40-fcs-src-b43-26_aug_2013.zip)。
3、openjdk源码目录结构如上图所示:
解释:
openjdk
—— corba:一个冷门的多语言、分布式通信接口
- 热点:Java 虚拟机
- jaxp:XML 处理
- jaxws:一组用于 XML Web 服务的 Java API
- jdk:java开发工具包
———— 对于操作系统部分
————分享:平台无关实现
- langtools:Java语言工具
- nashorn:JVM 上的 JavaScript 运行时
4.因为需要了解jvm虚拟机所以进入hotspot目录
其中Hotspot就是我们要看的JVM包
Hotspot:全称Java HotSpot Performance Engine,是Java虚拟机的一种实现,包括服务器版和桌面应用版。 使用JIT和自适应优化技术(自动发现性能热点并进行动态优化)来提升性能。
使用java -version 查看Hotspot 的版本。
[machao@dev ~]$ java -versionopenjdk 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) 是版本。
所以:下面详细解释一下热点目录结构
├─agent Serviceability Agent客户端实现
├─make用于构建HotSpot的各种配置文件
├─src HotSpot 虚拟机源码
│ ├─cpu CPU相关代码(汇编器、模板解释器、广告文件crm系统java源代码,以及一些运行时函数都在这里实现)
│ ├─os操作系统相关代码
│ ├─os_cpu 操作系统+CPU组合相关的代码
│ └─共享平台无关的公共代码
│ ├─工具工具
│ │ ├─hsdis反汇编插件
│ │ ├─IdealGraphVisualizer 服务端编译器中间代码可视化工具
│ │ ├─启动器启动器“java”
│ │ ├─LogCompilation 一个工具,将-XX:+LogCompilation输出的日志(hotspot.log)整理成更易读的格式
│ │ └─ProjectCreator Visual Studio 项目文件生成工具
│ └─vm HotSpot VM核心代码
│ ├─adlc 平台描述文件的编译器(cpu以上或os_cpu中的*.ad文件)
│ ├─asm 汇编接口
│ ├─c1 客户端编译器(也称为“C1”)
│ ├─ci 动态编译器公共服务/动态编译器到VM的接口
│ ├─classfile 类文件处理(包括类加载和系统符号表等)
│ ├─动态生成代码的代码管理
│ ├─compiler 接口从VM调用动态编译器
│ ├─gc_implementation GC实现
│ │ ├─concurrentMarkSweep 并发Mark Sweep GC实现
│ │ ├─g1 Garbage-First GC实现(不使用老年代GC框架)
│ │ ├─parallelScavenge ParallelScavenge GC实现(服务器VM默认,不使用老年代GC框架)
│ │ ├─parNew ParNew GC实现
│ │ └─共享GC的常见实现
│ ├─gc_interface GC接口
│ ├─interpreter 解释器,包括“模板解释器”(官方版在用)和“C++解释器”(官方没用)
│ ├─libadt 一些抽象数据结构
│ ├─内存管理相关的内存(老年代GC框架也在这里)
│ ├─oops HotSpot VM对象系统的实现
│ ├─opto server 编译器(也称为“C2”或“Opto”)
│ ├─prims HotSpot VM的对外接口,包括一些标准库的native部分和JVMTI实现
│ ├─runtime 运行时支持库(包括线程管理、编译器调度、锁、反射等)
│ ├─services主要用于支持JMX等管理功能的接口
│ ├─shark 基于LLVM的JIT编译器(正式版未使用)
│ └─utilities 一些基本工具
└─测试单元测试
首先在这里了解更多信息。