JVM

虚拟机的前置基础

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进程的过程

虚拟机的退出

有如下几种情况,会导致虚拟机的退出

正常情况下爱,程序运行结束了

程序在执行的过程中,遇到了异常或者错误也会异常终止

由于操作系统出现错误也会导致JVM进程终止

posted on 2021-06-20 22:06  zrm0612  阅读(33)  评论(0)    收藏  举报