来自http://cs-fundamentals.com/tech-interview/java/which-java-package-is-imported-by-default.php
在每个Java程序中都可以有一个未命名的包,它只是一个没有名称的包.如果在编写类定义时省略package语句,则将类名放入默认包中,该包没有名称.Java编译器自动导入此包.
真的吗?
编辑
我对Java编译器的关注自动导入了这个包.
不,编译器不会导入未命名的包.
请注意Java语言规范中的以下内容.
从编译单位:
没有包声明的编译单元是未命名包的一部分(第7.4.2节).
来自包裹:
对于小程序和临时开发,程序包可以是未命名的(第7.4.2节)或具有简单的名称,但是如果要广泛分发代码,则应使用限定名称选择唯一的程序包名称.这可以防止在两个开发组碰巧选择相同的包名称并且稍后将在单个程序中使用这些包时可能发生的冲突.
从包的可观察性:
包
java,java.lang和java.io,总是可以观察到的.
请注意,未列出未命名的包.
来自进口声明:
未命名包中的类型(第7.4.2节)没有规范名称,因此在每种导入声明中对规范名称的要求意味着(a)无法导入未命名包中的类型,以及(b)
static成员无法导入未命名包中的类型.因此,§7.5.1,§7.5.2,§7.5.3和§7.5.4都要求static在未命名的包中导入类型(或其成员)的任何尝试都有编译时错误.
| 归档时间: |
|
| 查看次数: |
2607 次 |
| 最近记录: |