Java 导入包

Java Import Package

我的问题是关于这段代码的:

import java.util.*;

我被告知此代码将导入所有 Java 包,但我的问题是: 它会消耗更多内存吗?因为在我正在做的程序中我只是使用:

import java.util.Scanner;

import java.util.InputMismatchException;

感谢您的帮助。

不,惰性导入对生成的程序没有影响。看到这个问题:Java import vs code performance

使用惰性导入与显式导入更多的是可读性问题。 (此外,如果您引用存在于两个包中的 class 名称,则需要显式导入来解决歧义。)

I was told that this code will import all Java packages

不,当我们在代码中只使用像 List 这样的简单名称而不是全名 java.util.List (编译器需要将每个简单名称更改为其全名)。

通常最好避免使用 *,因为当很少有包具有相同名称的 类 时,它会导致问题。例如,让我们添加这个导入

import java.util.*;
import java.awt.*;

并使用List。编译器将不知道我们在这里指的是 List(java.awt.List 或 java.util.List),并且会 return 错误。我们可以通过添加

来描述我们想要使用的列表的精确位置来解决它
import java.util.*;
import java.awt.*;
import java.util.List;// <-- solves List problem

但为了避免此类问题,我们应该首先尝试避免 *,尤其是因为我们的 IDE 可以为我们生成导入。