自动导入哪些Java类/包?

Tus*_*Mia 5 java class package

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们使用的println方法没有导入它的包.所以我想知道:自动包含哪些包或类?

Ell*_*sch 6

一切都java.lang默认情况下,进口-在这里你正在使用java.lang.Systemjava.lang.String

  • 不完全是...请参阅我的回答中 JLS 的摘录。 (2认同)

And*_*ner 5

默认导入两个包:

  • java.lang
  • 当前类所在的包(在上述代码的情况下,这表面上是默认包,否则不能显式导入)。

语言规范

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

因此,您只能访问 中的公共类型java.lang,但您可以访问当前包中的所有顶级类型。

但重要的是要注意 Java 包不是分层的,尽管外观如此,所以这意味着 egjava.lang.reflect也不会因为java.lang被导入而自动导入。