在documentation中,我发现:
我检查了the source code,但是找不到要称为的地方defineClass
。从loadClass方法。
您能告诉我根据此方案调用defineClass
方法的人员和时间:
图片source
最佳答案
在defineClass()
调用期间调用ClassLoader#loadClass()
方法。但是,这不是直接在java.lang.ClassLoader
类中完成,而是在其子类之一(例如在URLClassLoader#findClass()
中。
对ClassLoader#defineClass()
的调用最终以对 native 方法 defineClass1()
或 defineClass2()
的调用结束。这些方法的C实现可在 src/share/native/java/lang/ClassLoader.c
的OpenJDK中找到。