为什么Java有NullPointerException而不是NullReferenceException?

Uri*_*Uri 13 java naming

可能重复:
什么是空指针异常?
Java:为什么NullPointerExceptions不是NullReferenceExceptions?

我们空闲的好奇心,有谁知道为什么Java中的空引用异常被称为NullPointerException?

似乎违反直觉的是,在正式没有指针的新语言中,在使用空引用时将选择使用此名称.

如果有人能指出我的权威解释,那将不胜感激.

Mic*_*rdt 5

Java"正式没有指针"的说法简直是假的.仅仅因为你不能对它做算术并不意味着它不是一个指针.C不是编程术语的最终权威.

谁得到挂掉电话在它的唯一的人要么是C/C++的球迷谁想要贬低的Java其缺乏力量在裸机,或(不太可能,如今)营销人谁想要出售Java作为一种简单,更安全的替代那些在C开发方面经验不佳的经理人.

Java语言规范:

引用值(通常只是 引用)是指向这些对象的指针,以及一个特殊的空引用,它指的是没有对象.

  • 对通常易于理解的概念的名称的分歧是整个计算机科学学科的基本问题.更糟糕的是在单一语言规范中对名称的分歧.有两个不同的词来指代同一个词有什么意义?为什么他们需要告诉我们它是指针?要说它和C/C++指针一样有效吗?在这种情况下,他们应该已经意识到这种命名差异. (2认同)