3

有很多辅助外部库可以包含在 Java 项目中,如Google Guava、Apache commons 等。包括很多这些有什么缺点,它会对项目的性能产生影响还是过度杀戮。

根据您要使用多少外部库来决定是否要将其包含在项目中,但除此之外还有其他需要考虑的问题吗?

4

1 回答 1

4

加载大量库最终可能会破坏您的 permgen 空间(存储类定义的位置),即使您不使用 jar 中的某个类,静态方法/字段也可能会占用大量内存。但在实践中,这通常不会成为问题,除非您使用非常受限的设备(例如嵌入式)。

然而,一个不同的问题是,有更多的库:

  • 跟踪真正需要什么和不需要什么变得更加困难,即可维护性
  • 您可能会对每个库的漏洞敞开心扉
  • 项目中未知变量的数量增加,这可能会导致不可预测的行为或更长的错误搜寻

但是很有可能开源、长期维护的库比我们任何人在前几个版本中编写的东西质量要好得多。

总而言之:保持整洁和精简是一件好事,但不要实现一个库会为你做的代码,只是为了避免包含那个库!

也就是说,我确信这有可能引发意见战,所以看看其他人怎么说!

于 2013-02-08T16:37:29.613 回答