Java字符串导入

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

String存在于java.lang包中,默认情况下在所有java程序中导入。

java.lang包中的所有内容都是隐式导入的(包括String),您自己也不需要这样做。 这只是Java语言的一个特性。 但是,ArrayList和HashMap位于java.util包中,不会隐式导入。

java.lang包主要包括基本function,例如基元的类版本,基本exception和Object类。 这是大多数程序不可或缺的一部分,迫使人们导入它们是多余的,因此隐式导入了这个程序包的内容。

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)

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