为什么Java有NullPointerException而不是NullReferenceException?

2022-09-04 04:30:15

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

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

在一种官方没有指针的新语言中,在使用空引用时,将选择使用此名称,这似乎有悖常理。

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


答案 1

Java“官方没有指针”的说法是完全错误的。仅仅因为你不能对它进行算术运算并不意味着它不是一个指针。C 不是编程术语的最终权威。

唯一被它困扰的人要么是C/C++粉丝,他们想贬低Java在裸机上缺乏权力,要么(现在不太可能)营销人员想要将Java作为更简单,更安全的替代品,而不是那些在C开发方面有过糟糕经历的经理。

Java 语言规范中可以看出:

引用值(通常只是引用)是指向这些对象的指针,并且是一个特殊的 null 引用,它不引用任何对象。


答案 2

推荐