1

我想知道以下实现之间是否有任何区别:

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语句的理解是包含文件的内容基本上是在编译时复制到源文件中的。我不确定importJava中的语句是否以相同的方式工作,但如果他们这样做,使用上面显示的第二个构造可能会节省内存(因为你没有import将整个java.util.Date类放入SimpleDatePrinter?或者这无关紧要吗?

我意识到在没有导入类的情况下编写代码会损害可读性等等。我也意识到,在上面的例子中,“担心不够”。对于性能是关键因素的情况,我只是对此感到好奇。

4

2 回答 2

5

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

于 2013-07-18T15:34:28.890 回答
5

不,没有区别。import 语句用于避免使用我们正在使用的类的完全限定名称。该文档没有谈论任何关于性能改进的内容

于 2013-07-18T15:31:45.000 回答