java程序如何装载
Java 程序的装载过程
Java 程序的装载过程涉及多个步骤,从源代码到最终的执行。以下是详细的流程:
编译 Java 源代码
Java 源代码文件(.java)需要通过 Java 编译器(javac)编译为字节码文件(.class)。字节码是平台无关的中间代码,可以在任何支持 Java 虚拟机(JVM)的平台上运行。
javac HelloWorld.java
类加载机制
JVM 通过类加载器(ClassLoader)动态加载 .class 文件。类加载器分为以下层次:

- Bootstrap ClassLoader:加载核心 Java 类库(如
rt.jar)。 - Extension ClassLoader:加载扩展库(
jre/lib/ext目录下的类)。 - Application ClassLoader:加载用户程序的类路径(CLASSPATH)中的类。
类加载过程分为以下阶段:
- 加载:查找并加载字节码文件。
- 验证:检查字节码的合法性,确保符合 JVM 规范。
- 准备:为类变量分配内存并初始化默认值。
- 解析:将符号引用转换为直接引用。
- 初始化:执行静态代码块和静态变量的显式初始化。
执行 Java 程序
通过 java 命令启动 JVM,并指定主类(包含 main 方法的类)。

java HelloWorld
JVM 会调用主类的 main 方法,程序开始执行。
动态加载与卸载
Java 支持运行时动态加载类(如通过 Class.forName() 方法)。卸载类通常由垃圾回收器在类不再被引用时处理。
常见问题与调试
- ClassNotFoundException:类路径未正确配置,或类文件缺失。
- NoClassDefFoundError:类加载失败,通常是因为依赖的类未找到。
- 使用
-verbose:class:可以查看类加载的详细日志。
java -verbose:class HelloWorld
通过以上步骤,Java 程序能够被正确装载并执行。






