В Java локальные ссылочные переменные не имеют значения по умолчанию, равного null, до их инициализации. В чем разница между переменной со значением null и переменной без значения?
Неинициализированная ссылка не имеет значения, она имеет неопределенное значение (и компилятор запрещает вам их использовать, IIRC). Ссылка, инициализированная null, приведет к сравнению на равенство с null, всегда оцениваемым как true.
null
true
В менее строгом языке переменная, которая не была каким-либо образом инициализирована, может содержать случайные данные.
В Java на неинициализированную переменную нельзя ссылаться. Это обеспечивается как компилятором, так и верификатором байт-кода.