导入类和使用具有完整类名的引用之间是否有任何性能或内存改进?

时间:2013-07-18 15:29:40

标签: java performance class memory

我想知道以下实现之间是否存在任何差异:

import java.util.Date;

public class SimpleDatePrinter {

    public void printDate() {
        System.out.println(new Date());
    }

}

......和......

public class SimpleDatePrinter {

    public void printDate() {
        System.out.println(new java.util.Date());
    }

}

我问的原因是因为我对C ++ include语句的理解是,包含文件的内容基本上在编译时被复制到源文件中。我不确定Java中的import语句是否以相同的方式工作,但是如果它们这样做,则使用上面显示的第二种结构可能会节省内存(因为你不是import整个java.util.Date }}进入SimpleDatePrinter?或者这是不相关的?

我意识到在不导入类的情况下编写代码会对可读性和诸如此类的东西产生不利影响。我也意识到,在上面的例子中,“不足以担心”。对于性能是关键因素的情况我只是好奇。

2 个答案:

答案 0 :(得分:5)

不,没有区别。 import语句用于避免使用我们正在使用的类的完全限定名称。 documentation没有谈论绩效改进

答案 1 :(得分:5)

导入在编译时解决。在您的示例中,生成的字节码将是相同的。并且在运行时,无论如何都需要加载类(Date)。因此,从性能角度来看,它没有任何区别。