-
加载:JVM 在启动时会加载 Java 类的字节码文件(.class 文件),将这些字节码加载到内存中。
-
验证:JVM 会验证加载的字节码是否符合 Java 虚拟机规范,确保字节码的安全性。
-
准备:JVM 会为类的静态变量分配内存,并设置初始值。
-
解析:JVM 会将字节码转换为 Java 虚拟机内部的数据结构,如运行时常量池、字段和方法数据等。
-
执行:JVM 会根据解析后的数据结构执行 Java 代码,包括方法调用、循环、条件判断等。
-
内存管理:JVM 负责内存的分配和回收,包括堆内存、栈内存和静态变量内存等。
-
异常处理:JVM 会捕获和处理 Java 代码中的异常,如 NullPointerException、ArrayIndexOutOfBoundsException 等。
-
垃圾回收:JVM 通过垃圾回收算法来自动回收不再使用的内存空间,减少内存泄漏的风险。
-
程序退出:当 Java 程序执行完毕或出现异常时,JVM 会进行退出清理工作,包括内存回收、关闭资源等。