未使用的导入和对象是否会对性能产生影响

时间:2012-01-04 08:36:59

标签: java import packages bytecode

我怀疑Java代码中未使用的导入和未使用的对象是否会对性能产生任何影响?

假设一个对象被初始化并且从未使用过,会发生什么? 未使用的进口成本是多少

5 个答案:

答案 0 :(得分:54)

这是一个非常普遍的问题。

与大多数性能问题一样,最好的方法是编写最清晰,最简单的代码,因为这样可以提高代码的可维护性,并有助于确保代码在更改后表现得相当好。 (Clever / Obtuse / Needless Verbose代码可以快速运行开始,但由于它只会被凡人改变它可能会慢得多)

未使用的导入对编译器有轻微影响,但字节代码或运行时没有导入。

可以优化掉未使用的对象,但最好避免使用这些对象,因为它们几乎总会对性能产生一些影响,但更重要的是使阅读和维护代码更加困难。

答案 1 :(得分:19)

未使用的导入在运行时没有性能影响。它纯粹是命名空间机制。尽管如此,您应该始终只导入可读性所需的内容,并避免令人讨厌的命名空间冲突。

除了代码可读性和代码的可维护性之外,通过整理导入可以更快地编译java代码(但是,不可察觉),但运行时性能不受影响,因为生成的字节代码不受不整齐导入的影响。生成的字节代码保持不变。

答案 2 :(得分:8)

虽然编译的影响很小,但部署的影响可能很小。我刚刚遇到一个未使用的导入,需要一个单独的库,它成为一个maven依赖。幸运的是,没有找到进一步的传递性依赖问题,但战争无缘无故。在webapp类加载器中添加一个多余的jar。

答案 3 :(得分:1)

尽管Java文件中未使用的导入不会造成任何危害,但是不必要地增加了Java源文件的长度和大小。

答案 4 :(得分:0)

是的,如果我们在java类中引用未使用的import语句,则会对性能产生一些影响。 Java编译器将检查import语句中提到的引用,并在很细微的程度上影响您的类的性能。

谢谢