documentation中,我发现:



我检查了the source code,但是找不到要称为的地方defineClass。从loadClass方法。
您能告诉我根据此方案调用defineClass方法的人员和时间:

java - 谁在类加载过程中首先创建Class <?>对象?-LMLPHP

图片source

最佳答案

defineClass()调用期间调用ClassLoader#loadClass()方法。但是,这不是直接在java.lang.ClassLoader类中完成,而是在其子类之一(例如在URLClassLoader#findClass()中。

ClassLoader#defineClass()的调用最终以对 native 方法 defineClass1() defineClass2() 的调用结束。这些方法的C实现可在 src/share/native/java/lang/ClassLoader.c 的OpenJDK中找到。

10-06 05:00