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


89
char c = '\u0000';

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

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

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


다음과 같이 문자가 기본값인지 확인할 수 있습니다.char == 0
ACV

답변:


105

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

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


26
그것은 그 노트에 중요합니다 '\u0000'같은 값이 아닙니다 null
EDD

무엇입니까 null character? 이 질문에 대한 일부 답변은 기본값을 null 문자로 참조하고 있습니다.
Quazi Irfan 2015

3
@ Óscar López, 문자 '\ 0'은 어떻습니까? 그들은 동일하지 않습니까?
Tarik

5
@Tarik 예, 그들은 동일합니다.
Óscar López

3
@iamcreasy 당신이 말하는 것이 정확합니다. 내 메모는 '널 캐릭터'가 캐릭터라는 것입니다. 그것은 null자바 용어 가 아닙니다 . 즉 \u0000 == null반환 할 것입니다false
Edd

30

'\ 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 를 인쇄합니다.


9

문자의 기본 값은 Character.MIN_VALUE 내부적으로 표현MIN_VALUE = '\u0000'

또한 문자 필드에 다음과 같은 기본값이 포함되어 있는지 확인할 수 있습니다.

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

}

7

'\u0000'을 의미합니다 null. 따라서 초기화되지 않은 char 변수를 인쇄하면 아무것도 얻지 못할 것입니다.


2
실제로 컴파일 오류가 발생합니다.) '\ u0000'은 char 필드가 '초기화'되는 기본값입니다.
Edd

1
당신은 아무것도 얻지 못할 것입니다. 공백 또는 사각형이 표시됩니다.
Roshana Pitigala

c와 c1을 모두 '\ u0000'으로 입력하면 "0"이 표시됩니다. System.out.println (c + c1);
alan


0

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

char NULLCHAR = (문자) 0;

char NULLCHAR = '\ 0';


0

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

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

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


0

char 데이터 유형의 기본값은 '\ u0000'(또는 0)이고 최대 값은 '\ uffff'(또는 65,535 포함)입니다.

여기 에서 정보를 볼 수 있습니다 .


2
질문에 이미 수락 된 답변과 몇 가지 다른 답변이 있습니다. 귀하의 답변이 유용하려면 문제에 대한 유용한 새로운 정보 또는 새로운 통찰력을 추가해야합니다. 다른 답변에서 정보를 반복하는 것은 도움이되지 않습니다.
AdrianHHH

0

null과 0 사이에는 뚜렷한 차이가 있습니다. 에서 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (위 참조), 문이 구성되어 있습니다 -

모든 참조 유형에 대한 값으로 사용할 수있는 특수 null 리터럴도 있습니다. 기본 유형의 변수를 제외한 모든 변수에 널을 지정할 수 있습니다. null 값으로 존재 여부를 테스트하는 것 외에는 할 수있는 일이 거의 없습니다. 따라서 null은 프로그램에서 일부 개체를 사용할 수 없음을 나타내는 마커로 자주 사용됩니다.

그렇기 때문에 다음 문장은 다른 쪽이 아닌 오류를 제공합니다.

char a = null; // 유형 불일치 : null에서 char로 변환 할 수 없습니다.

char b = 0; // 유효한 구문.


0

\u0000 Java에서 char 유형의 기본값입니다.

다른 사람들이 언급했듯이 비교를 사용하여 초기화되지 않은 변수의 값을 확인할 수 있습니다.

char ch;
if(ch==0)
    System.out.println("Default value is the null character");

-1

나는 그것이 '\u00000'또는 그저 ''아니라고 생각합니다 '\u0000' (첫 번째 것은 5 개의 0이 있고 마지막 것은 4 개의 0이 있습니다.)


@ JohannesH.- 이것은 나에게 대답처럼 보입니다. 이것을 '답변이 아님'으로 표시하는 것은 올바른 IMO가 아닙니다.
Krease

-1

의 기본값 char\ u0000입니다.

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

이것은 true 를 반환 합니다.


-1

char의 기본값은 유니 코드 차트에 따라 '\ u0000'인 null입니다 . 인쇄하는 동안 어떻게 작동하는지 살펴 보겠습니다.

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

참고 : 출력은 비어 있습니다.


-2

문자 기본 유형의 기본값은 Java 언어 사양에 명시된대로 '\ u0000'(null 문자)입니다.

'u0000'의 단축키는 '\ 0'이므로 null은 '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);
    }

}

산출:

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.