在java.util.*和java.util.Scanner中,性能方面哪一个更好?
java.util.*导入它下面的所有类,而java.util.Scanner只导入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.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通常会用*
替换您的特定导入,如果它们来自同一个包
。应该考虑禁用该功能;)