There is also a special null type, the
type of the expression null, which has
no name. Because the null type has no
name, it is impossible to declare a
variable of the null type or to cast
to the null type. The null reference
is the only possible value of an
expression of null type. The null
reference can always be cast to any
reference type. In practice, the
programmer can ignore the null type
and just pretend that null is merely a
special literal that can be of any
reference type

As the JLS says, null is of the null type and that is not a reference type. It is however usable in situations where a value of a reference type is expected (the value is really a “bottom” in the type algebra).