java - Java 类加载器的目的是什么?

标签 java classloader

我的问题是,JVM 什么时候加载项目中的所有类?另外,为什么我们需要类加载器的概念。

如果您能举例说明您使用类加载器的情况以及为什么在这种情况下使用类加载器,我将非常高兴。

最佳答案

when does JVM load all the classes in the project.

JVM 或多或少地“按需”加载类。 IE。运行时中的所有类通常不会在启动时加载。

有关此主题的详细信息,请参阅这些 URL:

why do we need the notion of a class loader

类加载器允许我们从各种来源加载类。

  • 磁盘上的 jar 文件
  • 运行时生成的字节数组
  • 来自互联网(这是 applet 的典型用例)

这使得应用程序的启动更加灵活和模块化。

give me a example with situation where you use class loader and why you use class loader there.

没有类加载器你就走不了多远,所以我会将你的问题解释为“你什么时候需要自定义类加载器”。

我个人使用字节码操作库 ( ASM ) 做了一些实验,其中我用 get 和 set 方法调用替换了字段访问。我使用自定义类加载器在加载类时重写它们。我不知道这是否是一个典型的用例,但重点是没有一个我无法做到这一点!

您还可以想象一个从某个插件目录加载外围类的插件系统。

关于java - Java 类加载器的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6519003/

相关文章:

java - 测试重新部署 Web 应用程序时是否存在内存泄漏

java - 如何使用 Wildfly 提供的不同 JAR 版本将 EAR 部署到 Wildfly?

java - getResourceAsStream() 为属性文件返回 null

java - 如何安装aparapi

java - 在多线程环境中处理事务

java - 通过排列的动态循环量

java - 在这种情况下,为什么 Tomcat 无法从 WEB-INF/lib 加载类?

java - 设置ClassLoader的开销

java - 您会使用 Laszlo 为 Java Web 应用程序开发基于 Flash 的前端吗?

java - SAX 解析器和字符串驻留