Java Language Machine Specification
2.4 Reference Types and Values
A reference value may also be the special null reference, a reference to no object, which will be denoted here by null. The null reference initially has no run-time type, but may be cast to any type. The default value of a reference type is null.
The Java Virtual Machine specification does not mandate a concrete value
encoding null.
Similarly, while null might appear to be a keyword, it is technically the null
literal (§3.10.7).
A literal is the source code representation of a value of a primitive type (§4.2), the String type (§4.3.3), or the null type (§4.1).
3.10.7 The Null Literal
The null type has one value, the null reference, represented by the null literal null, which is formed from ASCII characters.
NullLiteral:
null
A null literal is always of the null type (§4.1).
4.1
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.
4.7.4 The StackMapTable Attribute
• The Null_variable_info type indicates that location contains the verification type null.
Null_variable_info {
u1 tag = ITEM_Null; /* 5 */
}