An object in Java code is actually a reference to an object in the heap. If that reference has not been set, it is null. So the actual exception is a null reference excpetion. But the Java language was developed by people who had coded in C before, and C was the language used to write the JVM, so the misnomer of "null pointer excpetion" was used.