java - Java 如何高效地搜索 jar 文件中的类?

标签 java algorithm search jar performance

假设我有 500 个 jar 文件链接到我的程序,总计超过 500 MB(所有 jar 的大小,而不是每个 jar 的大小)并且我的程序调用了其中一个中的类。 Java 是如何通过 jars 查找一个类的,这样的效率如何?上)? O(log(n))?

最佳答案

Java 在 jar 的内部目录结构中查找与完全限定名称完全匹配的内容。它看起来;它不搜索。如果类路径上有 500 个 jar 文件,Java 将按照指定的顺序一个一个地查找它们,直到找到匹配项。如果包含给定类的 jar 是最后一个,Java 将查找 500 个 jar 文件。所以我猜是 O(n)。

更新:上述行为是默认行为。然而,正如 Hassan 指出的那样,这可以通过提供 JarIndex 来优化。在根 jar 文件中允许类加载器通过对包名称的简单查找找到正确的 jar 文件。

关于java - Java 如何高效地搜索 jar 文件中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2020800/

相关文章:

java - bundle 和 jar 之间的 OSGI 和 Maven 依赖关系

algorithm - 子串搜索

algorithm - m 对角 NxN 对称矩阵行列式的高效算法

php - 让 PHP 搜索一切

javascript - 平滑滚动搜索

Java继承和this关键字

java - 安卓 Java : can switch statement avoid inlining when creating a secret string?

search - 超越搜索中的“LIKE”

java - 使用并行流到 FileWriter 可以吗?

algorithm - 修改二进制搜索以查找下一个比键更大的项目