在java.util.*和java.util.Scanner中,性能方面哪一个更好?

在java.util.*和java.util.Scanner中,性能方面哪一个更好?,java,Java,java.util.*导入它下面的所有类,而java.util.Scanner只导入Scanner类。 那么,它们之间在执行时间上有什么区别吗?java.util.*将导入整个实用程序类,而java.util.Scanner将只导入Scanner类。现在,这取决于您是否希望从用户获取输入,然后专门导入java.util.Scanner类 导入特定类始终是最佳实践,因为导入整个包可能会让您感到困惑。 Eg java在两个不同的包中有两个日期类 1) java.util.Date 2) java.s

java.util.*导入它下面的所有类,而java.util.Scanner只导入Scanner类。
那么,它们之间在执行时间上有什么区别吗?

java.util.*将导入整个实用程序类,而java.util.Scanner将只导入Scanner类。现在,这取决于您是否希望从用户获取输入,然后专门导入java.util.Scanner类

导入特定类始终是最佳实践,因为导入整个包可能会让您感到困惑。 Eg java在两个不同的包中有两个日期类 1) java.util.Date 2) java.sql.Date

当我们使用“*”导入整个包时,如果出现任何错误,那么我们不知道是哪个类导致了此错误,这就是为什么根据需求导入特定类始终是最佳做法

多谢各位。 Rupesh R.Bharuka

与C中的
#include
不同,Java中的
导入
东西实际上并不复制东西,因此性能方面,
Java.util.*
Java.util.Scanner
实际上是相同的

但是,从包中导入所有内容可能会导致名称冲突。看看有多少类被称为
Scanner


如果您碰巧从
java.util
sun.tools.java
导入了所有内容。编译器将无法推断您指的是哪个
扫描器

这与c、c、php或asp.net有什么关系?简短的回答是否。编译器使用导入;它们不会影响运行时。它可能不会影响运行时的执行,但我认为最好只导入要使用的内容。无论是为了提高您自己的可读性,还是为了阅读/分析您的代码的人。哦,绝对不要将导入与
*
一起使用。但不是因为可读性。如果将来的Java版本中引入了新类,那么将import与
*
一起使用可能会导致代码中断。永远不要使用
*
@DawoodibnKareem good point事实上,我并没有这样想:)一些(如果不是全部)IDE通常会用
*
替换您的特定导入,如果它们来自同一个
。应该考虑禁用该功能;)