39

为什么 Java 不需要导入 Integer、String 等类,而需要导入其他类?

4

9 回答 9

49

有一个隐式导入java.lang.*

Java规范

编译单元自动访问其包中声明的所有类型,并自动导入预定义包中声明的所有公共类型java.lang

于 2012-12-23T04:42:03.847 回答
34

java.lang默认导入包,无需显式导入。

于 2012-12-23T04:41:55.193 回答
9

包中的类java.lang不需要被导入(编译器的行为就像它们总是被导入一样)。这个包包括核心类,如 String、Enum、Runnable、NullPointerException,当然还有原始包装类,如 Integer 和 Double。

于 2012-12-23T04:42:20.907 回答
6

因为,它们属于java.lang.*包。而且,它是由编译器隐式导入的。如果你这样做,那么它不会抱怨你。

于 2012-12-23T04:42:14.550 回答
3

java.lang是in-build,java中隐式导入,不需要手动导入

于 2012-12-23T04:46:16.530 回答
1

整数、字符串等类存在于默认导入的 java.lang 包中。

于 2012-12-23T19:07:44.147 回答
1

As it contains very frequently used classes, they have made it optional to import just for your convenience

于 2012-12-23T07:11:06.173 回答
1

java中的每个类都在一个包中,如果没有定义包,则将其理解为默认包。并且在包的顶部是 java.lang.* 所以我们不需要导入它来导入其他类。

于 2012-12-23T18:53:45.537 回答
0

对于“java.lang 是唯一的一个自动导入包吗?”的问题。有两个包。

  1. java.lang
  2. 未命名

你可以在这里查找更多信息。 https://www.quora.com/Which-package-is-available-by-default-in-java

于 2020-04-09T02:48:03.017 回答