为什么Java有NullPointerException而不是NullReferenceException?

14

有趣的是,去年你在Jsight链接中评论了这个问题。=) - Riggy
@Riggy:啊,我的错。我搜索错了(java NullPointerException)而不是(java NullReferenException)。我正在删除这个问题,以便放弃任何不当获得的声望。 - Uri
1个回答

5
Java“官方没有指针”这个说法是错误的。仅仅因为你不能在上面进行算术运算并不意味着它不是指针。C语言不是编程术语的最终权威。只有那些想要贬低Java缺乏对裸机的控制力的C/C++粉丝或者(现在不太可能了)想要将Java作为一种更简单、更安全的替代方案出售给那些在C开发中遭受过糟糕经历的管理人员才会对此感到困惑。
Java语言规范中可以得知:
引用值(通常称为引用)是指向这些对象的指针,还有一个特殊的空引用,它不指向任何对象。

3
计算机科学学科普遍存在一个关于通常被理解的概念名称的分歧问题,更糟糕的是同一语言规范中的名称也存在分歧。将两个不同的词用来指代同一件事情有什么意义呢?为什么他们需要告诉我们它是一个指针?是为了说它和C/C++指针一样高效吗?如果是这样,他们应该意识到这种命名上的差异。 - oleks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接