Исследование в этой статье в основном включает в себя соответствующие примеры нулевого «типа» в Java, как подробно описано ниже.
Во-первых, задайте простой вопрос, связанный с нулевым вопросом, который запустит наше обсуждение NULL. Позже мы будем интерпретировать нулевый «тип» в соответствии с официальным языковым руководством.
Вопрос: Может ли следующая программа работать правильно?
Анализ:
Вывод должен быть: ха -ха
Поскольку NULL может быть вынужден к любому типу класса, предыдущий ((нулевый) нулевой) является законным, но после того, как NULL вынужден вращаться, это недействительный объект, а его возвратное значение равна нулю (я объясню это позже)
Метод хаха является статическим методом. Статический метод использует статическую привязку и не будет выбросить исключение по нулевым указателю.
Если функция HAHA () станет нестатичной, будет брошено исключение NULL Pointer.
Давайте приведем еще один пример:
Этот вопрос на самом деле похож на вышесказанное.
Результат все еще выводит "ха -ха"
Мы можем видеть в спецификации языка на Java
В разделе 4.1. Виды упомянутых типов и значений:
На языке программирования Java есть два вида типов: примитивные типы (§4.2) и ссылочные типы (§4.3). ”
Тип:
Приманиватип
Ссылка
Существует также особый нулевый тип, тип выражения NULL (§3.10.7, §15.8.1), которое не имеет имени.
Поскольку нулевой тип не имеет имени, невозможно объявить переменную нулевого типа или поднять на нулевый тип.
Нулевая ссылка является единственным возможным значением выражения нулевого типа.
Нулевая ссылка всегда может подвергаться расширению эталонного преобразования в любой ссылочный тип.
На практике программист может игнорировать нулевый тип и просто притворяться, что NULL является просто особым буквальным, который может быть любого эталонного типа.
Я переведю это для:
В языке Java есть два типа, один из них является основным типом , а другой - это тип ссылки .
Существует также особый нулевый тип, то есть тип выражения NULL, который не имеет названия.
Поскольку нулевой тип не имеет имени, невозможно объявить переменную нулевого типа или преобразовать ее в нулевый тип.
Нулевая ссылка является единственным возможным значением выражения нулевого типа.
Нулевые ссылки могут быть преобразованы в любой ссылочный тип.
Фактически, программисты могут игнорировать нулевый тип и могут думать, что NULL - это просто особый символ, который может стать любым эталонным типом.
Прочитав этот отрывок, я внезапно понял.
В 5.2. Раздел преобразования назначения:
«Значение нулевого типа (нулевая ссылка является единственным таким значением) может быть назначено любому эталонному типу, что приводит к нулевой ссылке такого типа»
Значение ссылки на нулевое тип (NULL (NULL) является единственным значением этого типа) может быть назначено любому типу и вернет пустую ссылку на объект такого типа (фактически NULL).
В 5.3. Раздел преобразования вызова метода, есть:
«Значение нулевого типа (нулевая ссылка является единственным таким значением) может быть преобразовано в любой ссылочный тип».
то есть « нуль может быть преобразован в любой ссылочный тип ».
Через официальное языковое руководство у меня очень глубокое понимание нулевого типа.
Это помогает нашему программированию и будущим собеседованиям.
Наконец, я надеюсь, что все столкнутся с некоторыми странными проблемами. В дополнение к Baidu, попробуйте искать на веб -сайте Stack Overflow как можно больше и проверить официальное руководство.
Суммировать
Вышеуказанное все о глубоком понимании этой статьи нулевых «типов» в Java, и я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!