JVM 是什么
Java Visual Machine ,Java虚拟机
用于隔离 操作系统,为Java语言包装一个运行环境,使得Java语言可以在任意操作系统上运行
JVM,JRE,JDK 有什么区别
jvm 隔离操作系统,
jre,java 运行环境,也就是 jvm + 基础类库
jdk,java开发组件,也就是 jvm + 基础类库 + 编译工具
JVM 有什么作用
- 一次编写,到处运行。JVM 隔离不同的操作系统,编写一次Java代码就可以在各个操作系统中运行。
- 内存管理,防止泄露。垃圾回收机制可以及时清理内存,防止内存泄漏。
- 数组下标越界检查。自动检查越界,只能在规定的内存区域中写,不会影响到其他数据。
- 多态。便于实现多态。
JVM 的实现
jvm 实际上是一种规范,实现 JVM 的实例有:
JVM 基本运行逻辑
- java 文件编译之后变成 class 文件
- 类加载器将这些 class 文件加载到 JVM 内部
- 类将会放置到 Method Area 方法区
- 运行类产生的对象会存放到 Heap堆 中
- 而实例对象运行方法时,则会使用到 JVM Stack 虚拟机栈 ,PC Register程序计数器,Native Method Stack 本地方法栈
- 运行方法时,class 文件会使用 Intepreter 解释器进行解释
- 运行热点方法时,方法会使用 JIT Compiler 进行解释,性能更快更强
- 除此之外,内存中产生的垃圾,将会由GC 垃圾回收器进行回收