【问题标题】:Java String importJava 字符串导入
【发布时间】:2011-10-31 12:54:18
【问题描述】:

我有一个疑问。当我们在Java中使用ArrayListHashMap时,我们必须导入java.util.ArrayListjava.util.HashMap。但是当我们使用String 时,它不需要import 语句。谁能澄清一下,为什么?

【问题讨论】:

  • 谢谢@Nathan Quirynen .. 你的意思是说 java.lang 包是在程序中预先导入的,我不需要显式导入?????
  • 我的意思是你不需要怀疑;我知道,这不是最有用的答案:>

标签: java


【解决方案1】:

String 存在于包java.lang 中,所有java 程序默认导入该包。

【讨论】:

【解决方案2】:

java.lang 包中的所有内容都是隐式导入的(包括字符串),您不需要自己这样做。这只是 Java 语言的一个特性。然而,ArrayList 和 HashMap 位于 java.util 包中,并未隐式导入。

java.lang 包主要包括基本特性,如原语的类版本、基本异常和 Object 类。这是大多数程序不可或缺的一部分,强制人们导入它们是多余的,因此这个包的内容是隐式导入的。

【讨论】:

    【解决方案3】:

    Java 编译器默认导入 3 个包。 1. The package without name 2. The java.lang package(That's why you can declare String, Integer, System classes without import) 3. The current package (current file's package)

    这就是您不需要为 java.lang 包声明导入语句的原因。

    【讨论】:

      【解决方案4】:

      我来晚了,但只是为了新读者,根据我的理解

      String 存在于包java.lang 中,默认情况下在类加载时由rt.jar 导入,该rt.jar 存在于类路径中。 Bootstrap Classloader(原始类加载器)负责加载rt.jar

      我们总是在类路径中包含 rt.jar,否则,您将无法访问核心 java 类,例如java.lang.String, java.lang.Thread, java.util.ArrayListjava.io.InputStream 等以及来自 Java API 的所有其他类。

      rt.jar 将始终位于 $JAVA_HOME/jre/lib 下,您可以使用 WinRARWinZip 客户端打开它

      【讨论】:

        【解决方案5】:

        导入 java.lang.String;

        这是不必要的导入。 java.lang 类总是被隐式导入。 这意味着您不必手动(显式)导入它们。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-03
          • 1970-01-01
          • 1970-01-01
          • 2011-07-09
          • 1970-01-01
          • 2017-03-10
          • 2018-11-04
          • 2018-04-15
          相关资源
          最近更新 更多