问题
Possible Duplicates:
What is a Null Pointer Exception?
Java: Why aren't NullPointerExceptions called NullReferenceExceptions ?
Our of idle curiosity, does anyone know why the null reference exception in Java was called NullPointerException?
It seems counterintuitive that in a new language that officially has no pointers a choice would be made to use this name when using a null reference.
If anyone can point me to an authoritative explanation, that would be appreciated.
回答1:
The statement that Java "officially has no pointers" is simply false. Just because you can't do arithmetic on it doesn't mean it's not a pointer. C is not the final authority for programming terminology.
The only people who get hung up over it are either C/C++ fans who want to disparage Java for its lack of power over the bare metal, or (unlikely, nowadays) marketing people who want to sell Java as a simpler, safer alternative to managers who've had bad experiences with C development.
From the Java language specification:
The reference values (often just references) are pointers to these objects, and a special null reference, which refers to no object.
来源:https://stackoverflow.com/questions/4648476/why-does-java-have-nullpointerexception-instead-of-nullreferenceexception