【问题标题】:Why java raises null pointer exception even if it doesn't support pointers? [duplicate]为什么java即使不支持指针也会引发空指针异常? [复制]
【发布时间】:2012-08-10 12:54:54
【问题描述】:

我一直很好奇。

我编写了一些 java 代码,它显示空指针异常。我很想知道 为什么java即使不支持指针也会给出Null Pointer Exception?

【问题讨论】:

  • 诚然,它可能被命名为:NullReferenceException...
  • @Aashish - 遗留名称可能是因为 Java 是用 C/C++ 编写的?
  • 并且 C 没有 NULL 指针异常。这真是不公平:P
  • @sylvainulg 确实如此,它只是被命名为“分段错误”或类似的名称。

标签: java


【解决方案1】:

没有指针算术这一事实并不意味着该语言中没有使用指针。对于 Java,有很多 很多 指针,您只需使用 . 而不是 -> 来跟踪引用。

【讨论】:

    【解决方案2】:

    Java是否支持指针(每次有 .[ 时都会使用指针)。

    它不支持指针算术 - 即使用数学将指针操作到另一个指针的能力。

    为了向转换过的 C/C++ 程序员指出这一点,他们没有沿用 C 名称,而是将其命名为其他名称。在 JVM 级别,一切都是指针,但由于 Java 程序员仅在使用引用时才看到这一点,因此异常命名不当。

    【讨论】:

      【解决方案3】:

      Object references 只不过是指针,但它们不像Pointers 那样复杂。看看this 的区别。

      【讨论】:

        【解决方案4】:

        Java 确实有指针。它们可以有两种值:(a) references 到对象,或 (b) null。这是规范中使用的语言。

        然而,Java 指针更类似于 Pascal 指针而不是 C 指针。

        【讨论】:

          【解决方案5】:

          它是 java 的“C”遗产的遗留物。这也是行业的说法。

          【讨论】:

            猜你喜欢
            • 2020-03-13
            • 1970-01-01
            • 1970-01-01
            • 2019-01-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-08-15
            • 1970-01-01
            相关资源
            最近更新 更多