前言
马士兵公开课复习
1. Java从编码到执行
Java代码从编码到执行:
(1) 编码完成的.java文件通过javac编辑成.class文件。
(2) Cass Loader将.class文件以及java库中一些类(class)加载到虚拟机内存中。
(3) 加载到内存的文件通过字节码解释器进行解释或即时编译器进行编译,生成二进制文件,保存到内存中。
(4) 生成的二进制文件通过JVM执行引擎进行执行,与OS硬件进行交互。
2. JVM是一种规范
JVM是一种规范,一个虚构的系统,它通过软件层面屏蔽了不同操作系统在底层硬件与指令上的区别。JVM用过不同的实现来实现跨平台。
3. JVM跟Java无关
Java是跨平台的语言,JVM是跨语言的平台。
无论任何语言,只要能够编译成.class文件,就都可以在JVM上运行。
4. 常见JVM实现(了解)
- Hotspot
– Oracle官方JVM - Jrockit
– BEA,曾经号称世界最快的JVM
– 经Oracle收购,归并于Hotspot - J9-IBM
– IBM版 - Microsoft VM
– 微软版 - TaoBaoVM
– 淘宝定制版
– Hotspot深度定制版 - Liquid VM
– 直接针对硬件 - qul zing
– 最新垃圾回收的业界标杆(商业版本,贵)
– Hotspot的参考
– www.azul.com
5. JDK JRE JVM
JDK、JRE、JVM三者为包含关系,前者包含后者。JDK(Java Development Kit)由java运行环境(jre)和java开发工具(javac编译器、jdb查错工具等)组成。JRE(Java Runtime Environment)由jvm和java核心类库组成。