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

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

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

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

Ответы [ 14 ]

92 голосов
/ 28 марта 2012

Значение по умолчанию атрибута char действительно '\u0000' (нулевой символ), как указано в Спецификации языка Java, раздел §4.12.5 Начальные значения переменных .

В моей системе строка System.out.println('\u0000'); печатает маленький квадрат, что означает, что это не печатный символ - как и ожидалось.

26 голосов
/ 28 марта 2012

'\ u0000' - это значение по умолчанию для символа.Его десятичный эквивалент равен 0.

Когда вы объявляете некоторую переменную char без инициализации, ей будет присвоено значение по умолчанию. \ 10000 *

см. Этот код

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);
    }
}

Этот код будет печатать true для последней печати. ​​

7 голосов
/ 05 августа 2015

Значение по умолчанию для символа равно Character.MIN_VALUE , которое внутренне представлено как MIN_VALUE = '\u0000'

Кроме того, вы можете проверить, содержит ли символьное поле значение по умолчанию как

Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{

}
6 голосов
/ 31 октября 2013

'\u0000' означает null.Поэтому, если вы напечатаете неинициализированную переменную char, вы ничего не получите.

3 голосов
/ 28 марта 2012
0 голосов
/ 07 июня 2018

Значением по умолчанию для типа примитива char является «\ u0000» (нулевой символ), как указано в спецификации языка Java.

Ярлык для «u0000» - «\ 0», поэтому нулевое значение можетбыть представлен как 'u0000' или '\ 0'.

Приведенная ниже Java-программа проверяет нулевые представления, используя экземплярное поле char 'c'. </p> <pre><code>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); } }

output:

0 голосов
/ 31 марта 2017

Значение по умолчанию для char равно нулю, что равно '\ u0000' согласно Юникод-диаграмма . Давайте посмотрим, как это работает во время печати.

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();   
    } }

Примечание. Выходные данные не заполнены.

0 голосов
/ 23 декабря 2016

Значение по умолчанию для char равно \ u0000

public class DefaultValues {
char varChar;
public static void main(String...l)
 {
    DefaultValues ob =new DefaultValues();
    System.out.println(ob.varChar=='\u0000');
 }  
}

Это вернет true

0 голосов
/ 05 октября 2016

\u0000 - это значение по умолчанию для типа символа в Java

Как уже упоминалось, вы можете использовать сравнение для проверки значения неинициализированной переменной.

char ch;
if(ch==0)
    System.out.println("Default value is the null character");
0 голосов
/ 05 июня 2016

Я думаю, что это '\u00000' или просто '', а не '\u0000' (1-й имеет 5 нулей, а последний имеет четыре нуля.)

...