Начальное значение поля определяется значением по умолчанию для типа поля. Невозможно получить значение поля до его неявной инициализации, соответственно поле никогда не бывает неинициализированным.
Определение поля может содержать его инициализацию. Для статических полей использование инициализаторов равнозначно применению операторов присваивания при инициализации класса, а для экземплярных полей их использование равнозначно применению операторов присваивания при создании экземпляра.
При инициализации класса всем статическим полям сначала присваиваются значения по умолчанию, а затем выполняется инициализация тех полей, определения которых содержат инициализаторы. Аналогичный процесс выполняется при создании экземпляра класса, но действия производятся с экземплярными полями.
Инициализация статических и экземплярных полей производится перед вызовом соответствующих конструкторов (статических и экземплярных). Инициализация производится в том порядке, в каком поля описаны в теле класса.
См.также: