1、JVM概述
我们在开发程序的时候,需要将我们所认识的程序代码转换为机器所认识的二进制代码,比如我们经常要编写 HelloWord.java,电脑是怎么认识运行的?HelloWord.java是我们程序员编写的,我们人可以认识,但是电脑不认识。因此就需要在中间穿插一个转译的过程,而这个过程就由Java虚拟机来替我们完成。
1.1、Java文件编译的过程
- 1.程序员编写的.java文件
- 2.由javac编译成字节码文件.class:(为什么编译成class文件,因为JVM只认识.class文件)
- 3.在由JVM编译成电脑认识的文件 (对于电脑系统来说 文件代表一切)
大致流程如下:
通过这种方式,计算机就能识别我们所写的代码,完成相应的指令操作。
2、JVM内存结构
如图所示,在Java虚拟机中,主要包含了6种内存结构:
- 程序计数器(PC Register)
- 虚拟机栈(JVM Stacks)
- 本地方法栈(Native Method Stacks)
- 堆(Heap)
- 方法区(Method Area)
- 直接内存(Direct Memory)