Ноль НЕ является объектом. На самом деле это противоположность объекта, и поэтому вы не можете делать вызовы методов для ссылки, указывающей на ноль. Если вы действительно должны знать, что такое null, вы можете думать о нем как о чем-то вроде нуля. На самом деле ссылка, указывающая на ноль, больше не занимает памяти, т.е. нуль. У него нет значения, поэтому это ссылка, которая не относится ни к какому объекту.
В Java вы должны инициализировать переменную, прежде чем сможете ее использовать. По историческим причинам Java не хочет, чтобы вы принимали значения, поэтому компилятор заставляет вас присвоить ему значение. Одной из причин этого являются ошибки и проблемы с безопасностью, вызванные C, поскольку он не инициализировал значения и не заставлял вас делать это до того, как они были использованы. Java инициализирует некоторые значения для примитивов и переменных экземпляра: 0, 0.0, false, и null и т. Д., Но для локальных переменных вы должны дать ему значение. Это для вашей собственной защиты. : -)