Jar vs DLL - 它们运行类似吗?

时间:2014-01-20 09:17:11

标签: java dll jar ram

我有一个问题。导入到主项目的外部JAR文件是否以DLL的样式运行,这样主要项目只有在使用它们时才会将它们带到操作内存,或者它们是否在内存中用于整个项目的运行时间?我问,因为我将在一个项目中工作,我希望它能用Java但速度很快,所以我正在寻找项目架构的最优化。

2 个答案:

答案 0 :(得分:2)

JAR包含在第一次使用时加载到内存中的类(以及其他内容)。加载后,它们会保留在内存中(除非您专门编写一些代码来卸载它们)。

因此,虽然加载过程可能会在应用程序启动时引入一些(小)延迟,但是一旦加载了所有内容,由于加载类的方式,您将无法看到任何性能问题。

如果您遵循良好的编码习惯,Java可以让您创建一个高性能的应用程序。

答案 1 :(得分:0)

来自维基百科上的Java Classloader文章:

  

Java类加载器是JRE的一部分,它将类动态加载到JVM中。通常只按需加载类。由于类加载器,Java运行时系统不需要了解文件和文件系统。在学习类加载器时,委派是一个重要的概念。

启动JVM时,会启动三个类加载器:

  1. Bootstrap类加载器 - 加载核心Java类扩展

  2. 类加载器 - 扩展目录中指定的代码

  3. 系统类加载器 - 类路径中的代码

  4. 所有未通过这些类加载器(外部jar文件)加载的软件库都是按需加载的。