开篇:.class 文件是怎么变成可运行的代码的?
写完一个 HelloWorld.java,编译器把它变成 HelloWorld.class。然后呢?JVM 要把这个 .class 文件"请"进内存,经过一系列安检、登记、初始化,它才真正能跑起来。
这个过程就是类加载。你可以把它想象成坐飞机:买票(找到 .class 文件)、过安检(验证)、找座位(分配内存)、对号入座(解析引用)、系好安全带准备起飞(初始化)。
在 Java 中,类加载采用的是懒加载策略——除了 JVM 启动时必须加载的基础类(比如 java.lang.Object、java.lang.Class),其他的类都是在第一次被用到时才会加载。同时 Java 还支持动态加载,即在运行时通过程序来加载类,这为 Java 带来了巨大的灵活性。