You're not the first person to be surprised that a language without pointers has something called a NullPointerException.
I don't know for sure, but I'd guess that this is a bit of a misnomer, and that a better name for this type of Exception would probably have been NullReferenceException. (It's too late to change it, now.)
References are really pointers to objects. But where a pointer can be directly manipulated (the dreaded pointer arithmetics in C), references cannot. Because of that no special syntax is needed to dereference them, the runtime environment/compiler/JVM understands that a call to the reference means to address the memory structure in the memory space referenced by the reference and not the raw memory itself.