JVM基础知识

JVM基础


Java程序的执行过程

​ 一个java程序首先经过javac编译成 .class 文件,然后 JVM 将其加载至方法区,执行引擎将会执行这些字节码。执行时,会翻译成操作系统相关的函数。JVM作为 .class 文件的翻译存在,解释字节码,调用操作系统函数

​ java虚拟机(Java Virtual Machine)可以识别 .class 后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。

​ 过程如下:Java 文件 -> 编译器 -> 字节码 -> JVM -> 机器码

JVM是一个虚拟化的操作系统,类似于Linux或者Windows的操作系统,只是它架在操作系统上,接受字节码即 .class ,把字节码翻译成操作系统上的机器码且进行执行

  • 跨语言(语言无关性)**:JVM只识别字节码,即与语言解耦。像Groovy,Kotlin,Scale等语言,其实也是编译成字节码,所以它们也可以在JVM上跑

JVM的内存区域

image-20200827112746974

Java方法的运行与虚拟机栈

image-20200827113434113

每个方法对应一个栈帧,虚拟机栈用于存储当前线程运行方法所需的数据,指令,返回地址

栈帧的结构

image-20200827113745179


原文地址:https://www.cnblogs.com/potofsalt/p/13570494.html