null is the default value for an uninitialized value of a field whose type is a reference type.
NullPointerException (or NPE) is the exception that is thrown when you attempt to perform an inappropriate operation on the
null object reference. Such operations include:
nullarray object or access its length,
nullobject reference as the mutex in a
nullobject reference, and
The most common root causes for NPEs:
nullin certain circumstances.
Examples of commonly used methods that return
get(key)method in the
MapAPI will return a
nullif you call it with a key that doesn't have a mapping.
getResourceAsStream(path)methods in the
ClassAPIs will return
nullif the resource cannot be found.
get()method in the
ReferenceAPI will return
nullif the garbage collector has cleared the reference.
getXxxxmethods in the Java EE servlet APIs will return
nullif you attempt fetch a non-existent request parameter, session or session attribute and so on.
There are strategies for avoiding unwanted NPEs, such as explicitly testing for
null or using "Yoda Notation", but these strategies often have the undesirable result of hiding problems in your code that really ought to be fixed.