1、什么是JVMJVM本质上是一个运行在计算机上的程序它的职责是运行Java字节码文件。java源代码执行流程①编写java源代码。②使用java编译器javac命令将源代码编译成Java字节码文件。③使用java虚拟机加载并运行Java字节码文件。2、JVM的功能①解释运行将字节码实时的解释成机器码让计算机执行②内存管理自动为对象分配内存空间自动垃圾回收机制③即时编译对热点代码进行优化提升执行聊率3、常见的JVMHotSpotOracle JDK、HotSpotOpen JDK、GraalVM、龙井、Eclipse OpenJ94、JVM虚拟机的组成类加载器ClassLoader加载 class 字节码文件到内存中运行时数据区JVM管理的内存负责管理 JVM 使用的内存比如创建对象和销毁对象执行引擎即时编译器、解释器、垃圾回收等将字节码文件中的指令解释成机器码同时使用即时编译器优化性能本地接口调用本地的方法C/C的方法5、字节码文件的组成基础信息魔数、字节码文件对应的Java版本号、访问标识、父类和接口信息常量池保存了字符串常量、类或接口名、字段名字段当前类或接口声明的字段信息方法当前类或接口声明的方法信息核心内容为方法的字节码指令属性类的属性比如源码的文件名、内部类的列表等6、字节码的常用工具javapJDK自带的反编译工具jclasslib可以在代码编译之后实时看到字节码文件内容。Arthas线上监控诊断产品通过全局视角实时查看应用 load、内存、gc、线程的状态信息并能在不修改应用代码的情况下对业务问题进行诊断大大提升线上问题排查效率。