当前位置: 首页 > 面试题库 >

导入不带Java名称的软件包

淳于宏伯
2023-03-14
问题内容

从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节)或使用简单的名称,但是如果要广泛分发代码,
则应使用限定名称选择唯一的程序包名称 。如果两个开发组碰巧选择了相同的程序包名称,而这些程序包后来在单个程序中使用,则可以避免发生冲突。

从包的可观察性:

javajava.langjava.io始终可观察。

注意, 未列出未命名的软件包

从进口报关单:

未命名包中的类型(第7.4.2节)没有规范名称,因此每种类型的导入声明中对规范名称的要求都意味着(a)
无法导入未命名包中的类型
,并且(b)static成员无法导入未命名包中的类型。因此,第7.5.1节,第7.5.2节,第7.5.3节和第7.5.4节都要求static在未命名包中导入类型(或其成员)的任何尝试都产生编译时错误。



 类似资料:
  • 问题内容: 我在看下面的代码,发现有些奇怪: 我期望这样做会导致编译错误,因为带有“ y”的不仅仅属于方法声明。为什么这样有效?我不知道如何或应该调用此代码。 运行它时,它还会产生,为什么在序列构造函数之前调用get? 问题答案: 这个: 是一个 静态初始化块 ,并在加载类时调用。您可以根据需要在类中添加任意数量的对象,它们将按照其出现顺序(从上到下)执行。 这个: 是一个 初始化块 ,并将代码复

  • serializer.py: 意见。py: urls.py: 我遇到了这个错误:ImportError:无法从“django”导入名称“six”。utils'(C:\Users\hajar\OneDrive\Desktop\stockm\env\lib\site packages\django\utils\u init\uuuz.py) 我安装六个pip安装六个 但不是工作????谁能帮我的忙?!

  • 问题内容: 我 是否 必须删除文件名中的所有空格才能将其导入,或者是否可以通过某种方式知道是否存在空格? 问题答案: 您应该从文件名中删除空格。由于文件名被用作导入模块的标识符(即将被导入为),而Python标识符不能有空格,因此该语句不支持此操作。 如果由于某些原因 确实 需要执行此操作,可以使用以下函数: 这将导入为。这与该语句的行为略有不同,应避免使用它。

  • 问题内容: 这是我的代码示例: 是否可以使用我的paxkage(bio)中的函数而无需指定包名称: ? 问题答案: 您可以将其用作导入声明,例如: 如果出现显式的句号()而不是名称,则在该软件包的package块中声明的所有软件包导出的标识符都将在导入源文件的file块中声明,并且 必须在不使用限定符的情况下进行访问 。 这就是像govey这样的测试框架所做的: 您不需要使用,或者由于导入以’开头

  • 问题内容: 我的$ GOPATH是 我当前的golang版本: 我在这个工作区下有多个golang项目,所以这是目录的结构 在proj1的main.go中,我将使用该项目下其他软件包的导入,如下所示: 但是,当我运行“ go build”时,我一直在收到错误消息: “ 无法加载包:非本地包中的本地导入“ ../package” 如果我不想使用相对的包路径,例如使用它: 然后一切都会正常。 如果使用

  • 问题内容: 我有两个文件, app.py mod_login.py 而python返回此错误: 如果删除from app import app,代码将起作用,但是如何访问? 问题答案: 问题是你有一个循环导入:在app.py中 在mod_login.py中 这在Python中是不允许的。有关更多信息,请参见Python中的循环导入依赖项。简而言之,解决方案是 要么将所有内容收集到一个大文件中 使用