初识jvm
什么是jvm
jvm本质上是一个运行在计算机上的程序,他的职责是运行java字节码文件

JVM的功能
01 解释和运行
对字节码文件中的指令,实时的解释成机器码,让计算机执行
02内存管理
自动为对象、方法等分配内存
自动的垃圾回收机制,回收不再使用的对象
03即时编译
对热点代码进行优化,提升执行效率


常见的JVM
常见的JVM:java虚拟机规范
《java虚拟机规范》由Oracle规定,内容主要包含了java虚拟机在设计和实现是需要遵守的规范,主要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。
《java虚拟机规范》是对虚拟机设计的要求,而不是对java设计的要求,也就是说虚拟机可以运行在其他语言比如Groovy、Scala生成的class字节码文件之上。
官网地址:https//docs.oracle.com/javase/specs/index.html
常见的JVM -HotSpot的发展历程

字节码文件详解
java虚拟机的组成

字节码文件的组成
推荐使用工具jclasslib查看字节码文件
https://github.com/ingokegel/jclasslib/releases/tag/6.1

字节码文件的组成部分-magic魔数
字节码文件组成部分-版本号




官网https://arthas.aliyun.com/doc/
下载好之后是一个压缩包
使用java -jar 文件名.jar启动



jvm的组成

类的生命周期
生命周期概述

加载阶段


方法区只是比较虚的概念,java早期的版本方法区叫永久代,比较新的版本叫元空间
















































































































































































































































































































































































































