The following categories of variables are automatically initialized to their default values: Static variables. Instance variables of class instances. Array elements.
The default value of a variable depends on the type of the variable and is determined as follows: For a variable of a value-type, the default value is the same as the value computed by the value-type's default constructor (11.1.1). For a variable of a reference-type, the default value is null.
[Note: Initialization to default values is typically done by having the memory manager or garbage collector initialize memory to all-bits-zero before it is allocated for use. For this reason, it is convenient to use all-bits-zero to represent the null reference. end note]