gpt4 book ai didi

java - 为什么堆栈中会出现sun.misc.Launcher$AppClassLoader.loadClass

转载 作者:行者123 更新时间:2023-11-30 05:57:43 31 4
gpt4 key购买 nike

我已经检测了 JDK 和应用程序。记录入口点和导出点以用于构建调用图。

调用图看起来像

sun.misc.Launcher$AppClassLoader.loadClass->com.example.Main.main
->sun.misc.Launcher$AppClassLoader.loadClass->com.example.Foo.foo

源代码

public class Main{
public static void main(String[] args){
Foo.foo()
}
}

public class Foo{
public static void foo(){};
}

这肯定是类加载器的工作方式,但我没有看到字节码中显示任何指示调用站点“sun.misc.Launcher$AppClassLoader.loadClass”的内容。那么,类加载器内部是如何工作的呢?

最佳答案

类是延迟加载的。

您可以通过编写代码在静态初始化程序中打印到控制台来看到这一点。

第一次由特定类加载器加载的任何代码使用类引用时,JVM 会从当前线程中的加载器请求Class。如果父类加载器尚未加载完全限定名称的类,则当前类加载器将定义它(或抛出异常)。

在早期,小程序将为每个类文件建立网络连接。

关于java - 为什么堆栈中会出现sun.misc.Launcher$AppClassLoader.loadClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52883819/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com