Java导入包

Java导入包,java,memory,import,package,Java,Memory,Import,Package,我的问题是关于此代码: import java.util.*; 我被告知此代码将导入所有Java包,但我的问题是: 它会消耗更多内存吗?因为在我正在做的程序中,我只是使用: import java.util.Scanner; 及 谢谢您的帮助。不,延迟导入对生成的程序没有影响。见这个问题: 使用惰性导入与显式导入更像是一个可读性问题。(另外,如果引用两个包中的类名,则需要显式导入来解决歧义。)否,延迟导入对结果程序没有影响。见这个问题: 使用惰性导入与显式导入更像是一个可读性问题。(此外,如

我的问题是关于此代码:

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

import java.util.Scanner;


谢谢您的帮助。

不,延迟导入对生成的程序没有影响。见这个问题:


使用惰性导入与显式导入更像是一个可读性问题。(另外,如果引用两个包中的类名,则需要显式导入来解决歧义。)

否,延迟导入对结果程序没有影响。见这个问题:

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

我被告知此代码将导入所有Java包

不,它只是告诉编译器,当我们在代码中只使用简单名称(如
List
)而不是全名
java.util.List
(编译器需要将每个简单名称更改为其全名)时,它应该搜索关于类/接口的详细信息

一般来说,最好避免使用
*
,因为当少数包具有相同名称的类时,这可能会导致问题。例如,让我们添加这个导入

import java.util.*;
import java.awt.*;
并使用
列表
。编译器将不知道我们在这里指的是哪个
List
(java.awt.List或java.util.List),并将返回错误。我们可以通过描述列表的精确位置来解决这个问题,通过添加

import java.util.*;
import java.awt.*;
import java.util.List;// <-- solves List problem
import java.util.*;
导入java.awt.*;
导入java.util.List;//
我被告知此代码将导入所有Java包

不,它只是告诉编译器,当我们在代码中只使用简单名称(如
List
)而不是全名
java.util.List
(编译器需要将每个简单名称更改为其全名)时,它应该搜索关于类/接口的详细信息

一般来说,最好避免使用
*
,因为当少数包具有相同名称的类时,这可能会导致问题。例如,让我们添加这个导入

import java.util.*;
import java.awt.*;
并使用
列表
。编译器将不知道我们在这里指的是哪个
List
(java.awt.List或java.util.List),并将返回错误。我们可以通过描述列表的精确位置来解决这个问题,通过添加

import java.util.*;
import java.awt.*;
import java.util.List;// <-- solves List problem
import java.util.*;
导入java.awt.*;

导入java.util.List;//这不会导入所有java包,而是导入
java.util
包中的所有java类。它不会消耗额外的运行时内存,因为它只在编译期间相关。编译可能会稍微慢一点,但这几乎不会引起注意。@geert3这似乎是我的一个完整答案-为什么要放在注释中?可能的重复不会导入所有java包,而是导入
java.util
包中的所有java类。它不会消耗额外的运行时内存,因为它只在编译期间相关。编译可能会稍微慢一点,但这几乎不会引起注意。@geert3这似乎是我的一个完整答案-为什么要作为注释?可能是