Ответ 1
Спецификация языка - это где null определено, и он говорит
Существует также специальный тип null, тип выражения null, который не имеет имени. Поскольку нулевой тип не имеет имени, невозможно объявить переменную нулевого типа или применить к нулевому типу. Нулевая ссылка - единственное возможное значение выражения нулевого типа. Нулевая ссылка всегда может быть перенесена на любой ссылочный тип. На практике программист может игнорировать нулевой тип и просто притворяться, что null - это просто специальный литерал, который может быть любого ссылочного типа. - Ссылка на документацию (раздел 4.1)
и
Тип null имеет одно значение, нулевую ссылку, представленную буквальным нулем, которая формируется из символов ASCII. Нулевой литерал всегда имеет нулевой тип. - Ссылка на документацию (раздел 2.3)
Скорее определение кругового зондирования, но значение null
- это нулевая ссылка - просто другой указатель. Значение нулевой ссылки не имеет особого значения и, по-видимому, зависит от разработчика, но, скорее всего, имеет значение нуль или какое-то другое значение, которое нельзя путать с другим адресом объекта.
Здесь может возникнуть путаница, потому что есть значение символа, называемое символом null со значением \u0000
. Это значение по умолчанию для типа char.