JVM拾遗(3): 类装载机制
上一篇我们了解了class文件结构, 那么JVM如何使用编译好的class二进制文件?
简言之: JVM会读取.class
文件并加载和初始化到方法区, 之后才能被后续程序使用.
同时该过程还需要满足一些要求:
- 加载的class文件不能影响虚拟机的稳定性, 也就是class文件要正确合法
- java的rt.jar里定义的类,如java.lang.Object, 不能被替换
- class文件里的各个符号引用要合法
- 允许运行时添加功能, 如各种分析工具包(arthas)等
JVM是解释执行字节码的,不像c/c++那样编译的时候静态链接完了, 是在运行时期动态链接的。
……