虚拟机的前置基础
Java技术栈与JVM
App
SSM、SpringBoot、SpringCloud
JavaAPI
JVM
应用程序最终都要跑在JVM上
Java跨平台的语言

基于JVM,Java才得以称为跨平台的语言,不同的平台有不同的适应的JVM
也就是JVM只关心字节码文件,拥有语言的无关性
虚拟机的概念以及分类
所谓的虚拟机,就是虚拟的计算机,是一款软件,用来执行一系列虚拟计算机的指令
虚拟机分类
系统虚拟机:完全是对于物理计算机的仿真,提供了一个可以完整运行整套操作系统的平台
程序虚拟机:典型代表JVM,专门为了执行单个计算机程序而设计的
无论是系统虚拟机还是程序虚拟机,都受限于物理资源
Java虚拟机
Java虚拟机也是一台执行字节码的虚拟计算机,它拥有独立的运行机制
所有的Java程序都运行在Java虚拟机内部
不光是Java,各种语言都可以共享JVM带来的跨平台性
Java虚拟机的特点
一次编译,到处运行
自动内存管理
自动垃圾回收
JVM整体结构
JVM的位置
硬件->操作系统->JVM
JVM是运行在操作系统之上的,与硬件没有直接的交互

Java代码的执行路径

案例演示
public class JVMDemo { public static void main(String[] args) { int i = 5; int j = 2; int a = i + j; } }
编译运行后,在下方Terminal中,通过cd命令进入target目录下对应生成的.class文件
输入javap -v JVMDemo.class查看代码工作的流程

Java的生命周期
虚拟机的启动
Java虚拟机的启动是通过引导类加载器创建一个初始类来完成,这个类是虚拟机的具体实现指定的
启动程序,或者说运行程序,JVM就运行起来了
虚拟机的执行
程序启动时 -JVM启动 程序结束时,虚拟机停止运行
JPS 显示当前所有Java进程的PID
执行一个程序的过程,其实就是执行JVM进程的过程
有如下几种情况,会导致虚拟机的退出
正常情况下爱,程序运行结束了
程序在执行的过程中,遇到了异常或者错误也会异常终止
浙公网安备 33010602011771号