《面试必问之 jvm 与性能优化》
1. 描述一下 JVM 加载 Class 文件的原理机制?
在面试 java 工程师的时候,这道题经常被问到,故需特别注意。
Java 中的所有类,都需要由类加载器装载到 JVM 中才能运行。类加
载器本身也是一个类,而它的工作就是把 class 文件从硬盘读取到内
存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都
是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加
载所需要的类。
Java 类的加载是动态的,它并不会一次性将所有类全部加载后再运行,
而是保证程序运行的基础类(像是基类)完全加载到 jvm 中,至于其他
类,则在需要的时候才加载。这当然就是为了节省内存开销。
Java 的类加载器有三个,对应 Java 的三种类:
三个加载器各自完成自己的工作,但它们是如何协调工作呢?哪一个类该由哪个类加载器完
成呢?为了解决这个问题,Java 采用了委托模型机制。