01初识 JVM
1.什么是JVM
JVM 全称是Java Virtual Machine,中文译名 Java虚拟机。JVM本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。

2.JVM功能
- 解释和运行:对字节码中的指令实时解释成机器码,让计算机执行。(为什么java比C、C++慢?就是因为C、C++编译后都是直接生成可执行的机器码指令,但是Java生成的是字节码文件,然后再使用字节码文件实时解释成机器码)。
- 内存管理:自动为方法、对象等分配内存;自动的垃圾回收机制,回收不再使用的对象。
- 对热点代码进行优化,提高性能。(通过这种热点代码优化,java的性能可以提高,接近C++,甚至在极端情况下比C++还快)
3.常见的JVM

这些JVM都遵守Java虚拟机规范,
- 《Java虚拟机规范》由Oracle制定,内容主要包含了Java虚拟机在设计和实现时需要遵守的规范,要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。
- 《Java虚拟机规范》是对虚拟机设计的要求,而不是对Java设计的要求,也就是说虚拟机可以运行其他的语言比如Groovy、Scala生成的class字节码文件之上。
- JVM官网地址:Java SE 规范
4.JVM组成
JVM主要分为四个部分:
- 类加载器(ClassLoader):加载class字节码文件中的内容到内存中。
- 运行时数据区域(就是JVM管理的内存):负责管理JVM使用到的内存,比如创建对象和销毁对象。
- 执行引擎(即时编译器、解释器、垃圾回收器等):将字节码文件中的指令解释成机器码,同时使用即时编译器优化性能。
- 本地接口:调用本地已经编译的方法,比如虚拟机中提供的c\c++的方法。
