2011-10-31 63 views
12

我有一个疑问。当我们在Java中使用ArrayListHashMap时,我们必须导入java.util.ArrayListjava.util.HashMap。但是当我们使用String时,它不需要import语句。任何人都可以澄清,为什么?在java.langJava String import

+1

你是对的:) –

+0

感谢@Nathan Quirynen ..你的意思是说包java.lang中被预先进口,在PROGRM,我需要不显式导入????? –

+0

我的意思是你不需要怀疑;我知道,不是最有用的答案:> –

回答

9

一切都隐含进口(包括字符串),你不必这样做你自己。这只是Java语言的一个功能。然而,ArrayList和HashMap在java.util包中,并未隐式导入。

包java.lang大多包含必要的特性,例如基本类的基类,基本例外和Object类。对大多数程序来说,这是不可或缺的,迫使人们导入它们是多余的,因此这个软件包的内容被隐式导入。

+0

感谢克里斯... :-) –

15

String存在于包java.lang这是默认在所有Java程序导入。

+0

感谢ANKUR .. :-) –

+0

欢迎您:) – Ankur

+0

从文档:_...自动导入所有的公共类型的声明在预定义的包java.lang._ Source中:https://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html –

1

Java编译器默认导入3个包。 1. The package without name 2. The java.lang package(That's why you can declare String, Integer, System classes without import) 3. The current package (current file's package)

这就是为什么你不需要申报import语句java.lang包。