【问题标题】:Difference between import java.util.* and java.util.XXXX [duplicate]导入 java.util.* 和 java.util.XXXX 之间的区别 [重复]
【发布时间】:2013-01-20 02:14:10
【问题描述】:

可能重复:
Performance difference between a wild card import and the required class import
Implications importing java packages with wildcard

我的 QA 负责人设置了一个 checkstyle 规则,java.util.* 不能出现在源代码中,改用java.util.XXX。例如,你只能写:

import java.util.Date;
import java.util.List;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
// ... may be thousands import statement here 

但不允许:

import java.util.*;

如果有人不遵守规则,QA 团队将不会进行集成测试。他告诉我import java.util.XXX 的风格比import java.util.* 更清晰,并且让JVM 运行得更快。是真的吗?

【问题讨论】:

  • 稍微清楚一点,但它肯定确实不会使 JVM 运行得更快(导入在编译时解决,而不是在运行时解决)。
  • 你的问号太棒了……
  • “使 JVM 运行得更快” 那部分是不正确的。它只影响编译器。通过运行时,这些类被单独且明确地标识。

标签: java import jvm


【解决方案1】:

如果您包含java.util.*,您将在java.util 包中包含所有类

当包含java.util.classname 时,您只包含java.util 包中的指定类。

使用 java.util.* 不会减慢 JVM,因为导入是在编译时处理的,而不是在运行时处理的。

【讨论】:

    猜你喜欢
    • 2012-10-26
    • 2018-03-19
    • 2011-06-22
    • 1970-01-01
    • 2011-07-14
    • 2012-08-29
    • 2014-08-16
    • 2011-04-08
    • 2012-11-24
    相关资源
    最近更新 更多