почему нулевой и нулевой тип данных char рассматриваются как одинаковые в java - PullRequest
0 голосов
/ 18 апреля 2019

Мне нужно выполнить какую-то задачу, проверив, имеет ли char нулевое значение и имеет ли null значение \ u0000, но не знаю, что компилятор java рассматривает оба варианта так же, как в примере кода

char nullTest = 0; 
System.out.println(nullTest == '\u0000'); //it is giving true

если я инициализирую его как nullTest = '0', тогда он выдает false, но в моей программе я часто присваиваю значения & null '\u0000' этой переменной, из-за которых он выдает ошибки времени выполнения,

1 Ответ

0 голосов
/ 18 апреля 2019

Обозначение \ uXXXX в основном встречается только в файлах .java и .properties.Там это читается как код Unicode точка.Текст Unicode (= использование всех видов специальных символов) часто использует формат UTF-8 (хотя также иногда используются UTF16LE и UTF16BE).

Так что если вы инициализируете символ в java, используя char nullTest = 0;, не даваяодинарные кавычки внутренне обрабатываются как nullTest = unicode of 0, то есть '\u0000', но если вы инициализируете символ кавычками, такими как char nullTest= '0', он обрабатывается символом строки и сохраняется как '0'

...