char c = '\u0000';
Когда я печатаю c, в окне командной строки отображается «a».
Итак, каково значение по умолчанию для поля типа char?
Кто-то сказал, что "\ u0000" означает ноль в юникоде; это правильно?
char c = '\u0000';
Когда я печатаю c, в окне командной строки отображается «a».
Итак, каково значение по умолчанию для поля типа char?
Кто-то сказал, что "\ u0000" означает ноль в юникоде; это правильно?
Ответы:
Значением по умолчанию для char
атрибута действительно является '\u0000'
(нулевой символ), как указано в Спецификации языка Java, раздел §4.12.5 Начальные значения переменных .
В моей системе линия представляет System.out.println('\u0000');
собой небольшой квадрат, что означает, что это не печатаемый символ - как и ожидалось.
'\u0000'
это не то же самое значение, что null
null character
? Некоторые ответы на эти вопросы ссылаются на значение по умолчанию как на нулевой символ.
null
в терминах Java, т.е. \u0000 == null
вернетсяfalse
'\ u0000' - значение по умолчанию для символа. Его десятичный эквивалент - 0.
Когда вы объявляете некоторую переменную типа char без ее инициализации, по умолчанию ей будет присвоено '\ u0000'.
увидеть этот код
public class Test {
char c;
public static void main(String args[]) throws Exception {
Test t = new Test();
char c1 = '\u0000';
System.out.println(t.c);
System.out.println(c1);
System.out.println(t.c == c1);
}
}
Этот код вернет истину для последней печати.
Значение по умолчанию для Character - Character.MIN_VALUE, которое внутренне представлено какMIN_VALUE = '\u0000'
Кроме того, вы можете проверить, содержит ли символьное поле значение по умолчанию как
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
'\u0000'
означает null
. Поэтому, если вы напечатаете неинициализированную переменную типа char, вы ничего не получите.
Это '\ u0000'. Смотрите здесь для получения дополнительной информации .
По умолчанию char - это символ со значением int 0 (ноль).
символ NULLCHAR = (символ) 0;
char NULLCHAR = '\ 0';
заманчиво сказать как пробел или целое число 0 в соответствии с приведенным ниже доказательством
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
но я бы так не сказал, потому что он может отличаться на разных платформах или в будущем. Что меня действительно волнует, так это то, что я никогда не буду использовать это значение по умолчанию, поэтому перед использованием любого символа просто проверьте, что он равен \ u0000 или нет, а затем используйте его, чтобы избежать неправильных представлений в программах. Это так просто.
Значение по умолчанию для типа данных char - '\ u0000' (или 0), а максимальное значение - '\ uffff' (или 65 535 включительно).
Вы можете увидеть информацию здесь .
Обратите внимание, что существует явная разница между нулем и нулем. В http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (указанном выше) делается заявление: -
Также существует специальный нулевой литерал, который можно использовать как значение для любого ссылочного типа. null может быть присвоен любой переменной, кроме переменных примитивных типов. Вы мало что можете сделать с нулевым значением, кроме проверки его наличия. Поэтому значение null часто используется в программах в качестве маркера, чтобы указать, что какой-то объект недоступен.
Вот почему следующие утверждения дадут вам ошибку, а не другую:
char a = null; // Несоответствие типов: невозможно преобразовать значение null в char.
char b = 0; // Правильный синтаксис.
\u0000
значение по умолчанию для типа char в Java
Как уже упоминалось, вы можете использовать сравнение для проверки значения неинициализированной переменной.
char ch;
if(ch==0)
System.out.println("Default value is the null character");
Значение по умолчанию для char
является \ u0000
public class DefaultValues {
char varChar;
public static void main(String...l)
{
DefaultValues ob =new DefaultValues();
System.out.println(ob.varChar=='\u0000');
}
}
Это вернет истину
Значение по умолчанию для char - null, что соответствует «\ u0000» согласно диаграмме Unicode . Давайте посмотрим, как это работает при печати.
public class Test_Class {
char c;
void printAll() {
System.out.println("c = " + c);
}
public static void main(String[] args) {
Test_Class f = new Test_Class();
f.printAll();
} }
Примечание: вывод пустой.
Значение по умолчанию для примитивного типа char - '\ u0000' (нулевой символ), как указано в Спецификации языка Java.
Ярлык для 'u0000' - '\ 0', поэтому нуль может быть представлен как 'u0000' или '\ 0'.
Приведенная ниже программа Java проверяет нулевые представления, используя поле экземпляра char 'c'.
public class DefaultValueForchar {
char c;
public static void main(String[] args) {
char c0 = '\0';
char cu0000 = '\u0000';
DefaultValueForchar obj = new DefaultValueForchar();
System.out.println(obj.c);
System.out.println(c0);
System.out.println(cu0000);
System.out.println(c0==cu0000);
System.out.println(obj.c==c0);
System.out.println(obj.c==cu0000);
}
}
char == 0