【问题标题】:Importing Java Classes Versus the Direct Path [duplicate]导入 Java 类与直接路径 [重复]
【发布时间】:2018-07-02 22:25:15
【问题描述】:

在带有 Eclipse 的 Java 中,您可以导入类并引用与您导入的内容相关的内容。但是,.java 文件的顶部实际导入一个类使用直接路径到您要使用的类之间有什么区别。 p>

例如,在这个 sn-p 中,我导入 java.util.HashMap 以使用 HashMap 变量。

import java.util.HashMap;

public class Main {
    private static HashMap<String, String> foo = new HashMap<String, String>();

    public static void main(String[] args) {
        foo.put("foo", "bar");
        System.out.println(foo.get("foo"));
    }
}

与此示例相比,我在声明 HashMap 变量时在类中直接使用 java.util.HashMap

public class Main {
    private static java.util.HashMap<String, String> foo = new java.util.HashMap<String, String>();

    public static void main(String[] args) {
        foo.put("foo", "bar");
        System.out.println(foo.get("foo"));
    }
}

当我导入一个类(第一个示例)与我使用直接路径(第二个示例)时相比,Java 做了什么。此外,在优化和内存方面,一种方式客观地是否优于另一种方式?

我正在使用 Java 8Eclipse

【问题讨论】:

  • 它们编译成相同的字节码。所以问题是——你觉得哪个更具可读性?
  • 您要查找的术语是完全限定的类名,并且导入只在编译时起作用;一切都被解析为字节码中的完全限定引用。

标签: java eclipse class import


【解决方案1】:

当我导入一个类(第一个例子)时,Java 做了什么与 当我使用直接路径时(第二个示例)。

在编译代码时,两者都被编译成相同的字节码(完全限定名称,即直接路径)。

从优化和记忆的意义上来说,客观上一种方法比另一种更好吗?

不,因为两者都编译成相同的字节码,所以没有性能差异。

更新:正如@Carlos Heuberger 在评论中所说,这可能是一个偏好问题。有时你需要输入完整的类名以避免类名冲突。

【讨论】:

  • 最后一句话可能是一个偏好问题......有时是需要的,例如java.util.Datejava.sql.Date
  • @CarlosHeuberger 谢谢,答案已更新。
猜你喜欢
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多