gpt4 book ai didi

Java:为什么不将 NullPointerExceptions 称为 NullReferenceExceptions?

转载 作者:IT老高 更新时间:2023-10-28 21:03:48 29 4
gpt4 key购买 nike

这是疏忽吗?还是跟JVM有关?

最佳答案

Java 确实有指针——不能在指针上执行指针运算。

来自可敬的JLS :

There are two kinds of types in the Java programming language: primitive types (§4.2) and reference types (§4.3). There are, correspondingly, two kinds of data values that can be stored in variables, passed as arguments, returned by methods, and operated on: primitive values (§4.2) and reference values (§4.3).

还有 later :

An object is a class instance or an array.

The reference values (often just references) are pointers to these objects, and a special null reference, which refers to no object.

(强调他们的)

所以,解释一下,如果你写:

Object myObj = new Object();

myObj 是一个 reference type,其中包含一个 reference value,它本身就是一个 pointer 指向新的-创建对象

因此,如果您将 myObj 设置为 null,则您将 reference value(又名 pointer)设置为 。因此,当变量被取消引用时,会合理地抛出 NullPointerException。

别担心:这个话题已经 heartily debated之前。

关于Java:为什么不将 NullPointerExceptions 称为 NullReferenceExceptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/101072/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com