JVM简介
1、什么是JVM
JVM:Java Virtual Machine(java虚拟机),是java的运行环境。(java二进制字节码的运行环境)
使用JVM的好处是:
1、跨平台
2、自动内存管理与垃圾回收机制
3、多态
那么,jvm、 jre 和 jdk 的区别是啥呢?请看下图:
普通用户只是运行java程序的话,只需要装jre即可。
开发人员则需要安装jdk。
要想长远发展与更好地开发,我们就得学好我们的JVM,理解底层的实现原理。
这里我们主要讲的JVM,以HostSpot为准。
2、JVM的组成部分
JVM主要有三大块:
-
ClassLoader是类加载器。
- 这里的JavaClass指的是class字节码文件。
-
JVM内存结构
- Method Area(方法区)存放我们的类
- Heap(堆)存放我们类的实例对象
- JVM Stacks(虚拟机栈)、PC Register(程序计数器)、Native Method Stacks(本地方法栈)在我们的对象调用方法的时候会被调用。
-
执行引擎
- Interpreter(解释器):方法执行时,对执行的方法进行逐行执行
- JIT Compiler(即使编译器):对热点代码(频繁调用代码)做编译,或者说做优化。
- GC(垃圾回收):对不再被引用的对象进行垃圾回收。