gpt4 book ai didi

java - 人们使用类加载来做什么?

转载 作者:太空狗 更新时间:2023-10-29 22:43:45 25 4
gpt4 key购买 nike

因此,每本 Java 教科书都在谈论 Java 的灵 active ,因为它可以在运行时加载类。只需拼凑一个字符串并将其提供给 Class.forName(),然后捕获 ClassNotFoundException 并进行处理。理论到此为止。

您能否举例说明您是如何使用 Java 类加载来实现否则不可能或不容易实现的功能的?请注意,我不是问“我们可以做什么伟大的事情?” - 我正在寻找真实世界的示例,无论是开源应用程序还是专有应用程序(如果您可以在不提供太多细节的情况下进行描述)。

编辑: 当然,VM 会在需要时延迟加载类。这是幕后的事情,只要我确定我需要的所有类(class)都在那里。如何处理 ClassNotFoundException?假设我写了十页的文本,但找不到 PrinterDriver 类。

最佳答案

首先想到的是插件。与 C++ 等语言相比,Java 类加载非常容易。

您可能没有意识到的一点是,任何 Java 虚拟机在内部都严重依赖于类加载。每次字节码解释器看到一个方法的引用时,它会检查该方法所属的类是否已经加载,如果没有,则使用 Class.forName() 后面的相同机制加载它) 在解析方法之前。这种机制非常强大,因为任何 Java 应用程序都真正充当一组可动态加载的可替换组件。如果 VM 编写得很好,它可以通过自定义类加载器加载类,该类加载器从网络而不是常规文件中获取类。

类加载时间取决于虚拟机实现,但大多数依赖于这种后期绑定(bind)机制,即在 VM 第一次遇到类时加载它。

关于java - 人们使用类加载来做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2175117/

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