Dereferencing happens using the . operator:
Object object = new Object(); String text = object.toString(); // 'object' is dereferenced.
Dereferencing pursues the memory address placed in a reference, to the place in memory where the actual object is. When an object has been found, the requested method is called; if the reference has the value null, dereferencing results in a NullPointerException:
Object obj = null; obj.toString(); // Throws a NullpointerException when this statement is executed.
Null indicates the absence of a value, so there is no object on which the requested method can be called.