Java 类装入器何时参与?
有1000万篇文章和文档是关于Java类加载器是什么,以及如何/*为什么*编写自己的...但他们似乎都在假设一些我找不到简单答案的事情!
我理解类装入器的工作:读取字节码并从中构造一个对象。不同的类加载器以不同的方式执行此操作,等等。
但是,由于我从来不需要在自己的代码中针对类加载器 API 进行编码,也不必编写自己的代码,因此我很难理解 ClassLoader
自己的代码何时实际触发。
例如:
public static void main(String[] args) {
Fizz fizz = new Fizz();
fuzz.buzz();
}
在这里,我们有一个对象。在实例化 之前,我们需要一个类装入器来启动并加载到其缓存中。这种情况在何时何地发生?!?!它在我的代码中没有显式显示,所以它必须隐式地存在于JRE中的某个地方...?Fizz
Fizz
Fizz.class
与这个问题相关的是,如果我编写自己的类加载器,例如,并希望将其配置为加载我应用程序的所有类,或者只是我的类,我如何将其“绑定”到我的应用程序中,以便它知道要使用哪个类加载器?我的代码是否需要显式调用此类加载器,还是像第一个示例一样是隐式的?提前致谢!WidgetClassLoader
Fizz.class
WidgetClassLoader