面试必知——JVM

JVM(Java Virtual Machine,Java虚拟机)是JRE的核心组成部分,承担分析和执行Java字节码的工作。是虚构出来的计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域,具有一次编译导出执行的特点。

JVM基本特性:基于栈的虚拟机;符号引用垃圾回收机制;通过明确清晰基本类型确保平台无关性;网络字节序

 

JVM原理

JVM是Java的核心与基础,在Java编译器和os平台之间的虚拟处理器,利用团建方法实现的抽象计算机基于下层的操作系统和硬件平台,可以执行Java字节码程序。

面试必知——JVM

Java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过制定平台运行。

 

JVM体系结构

面试必知——JVM

JVM由类加载器子系统(用来装载.class文件),执行引擎(执行字节码,或者执行本地方法),运行时数据区(方法区,堆,栈,PC寄存器、本地方法栈)

方法区:存放类型信息和运行时的常量池,线程共享。

堆:所有new的对象都存在堆中,并且是线程共享的。

PC:线程私有,存放下一条字节码指令的地址

栈:线程私有,存放局部变量和中间计算结果

 

JRE(Java Runtime Environment,Java运行环境),所有Java程序都需要在JRE下才能运行。是由Java API和JVM组成,JVM通过类加载器加载Java应用,并通过Java API进行执行。

 

JDK(Java Development Kit)是程序开发者用来编译、调试Java程序的开发工具包。