[java] char의 기본값은 무엇입니까?

char c = '\u0000';

c를 인쇄하면 명령 줄 창에 ‘a’가 표시됩니다.

그렇다면 char 유형 필드의 기본값은 무엇입니까?

누군가 ‘\ u0000’은 유니 코드에서 null을 의미한다고 말했습니다. 맞습니까?



답변

char속성 의 기본값 '\u0000'은 Java 언어 사양, 섹션 §4.12.5 변수의 초기 값에 명시된대로 실제로 (널 문자) 입니다.

내 시스템에서 선 System.out.println('\u0000');이 약간 정사각형으로 인쇄되어 예상대로 인쇄 가능한 문자가 아님을 의미합니다.


답변

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

이 코드는 마지막 인쇄에 대해 true 를 인쇄합니다.


답변

문자의 기본 값은 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’입니다. 자세한 내용은 여기를 참조하십시오 .


답변

기본 문자는 int 값이 0 (영) 인 문자입니다.

char NULLCHAR = (문자) 0;

char NULLCHAR = ‘\ 0’;


답변

아래 증거에 따라 공백 또는 정수 0으로 유혹합니다.

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

그러나 나는 다른 플랫폼 또는 미래에 다를 수 있기 때문에 그렇게 말하지 않을 것입니다. 내가 정말로 걱정하는 것은이 기본값을 사용하지 않을 것이므로 문자를 사용하기 전에 \ u0000인지 확인한 다음 프로그램에서 오해를 피하기 위해 사용하십시오. 그것만큼 간단합니다.