какое значение по умолчанию для char? - PullRequest
76 голосов
/ 28 марта 2012
char c = '\u0000';

Когда я печатаю c, он показывает «a» в окне командной строки.

Так, каково значение по умолчанию для поля типа символа?

Кто-то сказал, что в юникоде «\ u0000» означает ноль; это правильно?

Ответы [ 14 ]

0 голосов
/ 14 августа 2015

Обратите внимание, что между нулем и нулем есть четкая разница. В http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (ссылка выше) указывается: -

Существует также специальный нулевой литерал, который можно использовать в качестве значения для любого ссылочного типа. Нуль может быть назначен любой переменной, кроме переменных примитивных типов. Вы можете мало что сделать с нулевым значением, кроме проверки его присутствия. Поэтому null часто используется в программах в качестве маркера для обозначения того, что какой-то объект недоступен.

Именно поэтому следующие утверждения приведут к ошибке, а не другой: -

char a = null; // Несоответствие типов: невозможно преобразовать из null в char.

char b = 0; // Допустимый синтаксис.

0 голосов
/ 10 декабря 2014

Значением по умолчанию для типа данных char является '\ u0000' (или 0) и максимальное значение '\ uffff' (или 65 535 включительно).

Вы можете увидеть информацию здесь .

0 голосов
/ 09 декабря 2014

заманчиво сказать, как пробел или целое число 0, как показано ниже доказательства

char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);

но я бы так не сказал, потому что это может отличаться на разных платформах или в будущем. Что меня действительно волнует, так это то, что я никогда не буду использовать это значение по умолчанию, поэтому прежде чем использовать какой-либо символ, просто убедитесь, что оно равно или нет, а затем используйте его, чтобы избежать неправильных представлений в программах. Это так просто.

0 голосов
/ 06 апреля 2014

Символом по умолчанию является символ со значением int 0 (ноль).

char NULLCHAR = (char) 0;

char NULLCHAR = '\ 0';

...