如果我没有指定它,我的类的默认包是什么?

dev*_*ium 20 java package default-package

假设我有一个名为Main.java的文件,其代码如下:

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

它是否放在一个特定的包中,(可能是?)一个未命名的包?

谢谢

Lac*_*che 25

不在命名包中的类位于未命名的包中.因此,完整的班级名称是Main.

除了通过反射之外,不能从命名包中使用这些类.

JLS说:

Java SE平台提供了未命名的包,主要是为了方便开发小型或临时应用程序或刚开始开发时.


Mic*_*rdt 6

Java没有名称空间,它有包.是的,没有包声明的类隐含地是" 未命名包 "的一部分,通常也称为"默认包".但是,因为它不是可以从一个无名包导入类,并且由于语言规范明确允许实现关于无名包中的类是否和如何彼此可见,不同的规则,它通常是一个好主意,把所有的类名为除实验代码外的包.


sta*_*ker 6

根据JLS,它被称为:

7.4.2 未命名包

没有包声明的编译单元是未命名包的一部分。