charのデフォルト値は何ですか?


89
char c = '\u0000';

cを印刷すると、コマンドラインウィンドウに「a」と表示されます。

では、char型フィールドのデフォルト値は何ですか?

誰かが「\ u0000」はユニコードでnullを意味すると言いました。そうですか?


次の方法で、charのデフォルト値を確認できます。– char == 0
ACV

回答:


105

Java言語仕様のセクション§4.12.5変数の初期値に記載されているように、char属性のデフォルト値は確かに'\u0000'(ヌル文字)です。

私のシステムでは、線System.out.println('\u0000');は小さな正方形を印刷します。つまり、予想どおり、印刷可能な文字ではありません。


26
これ'\u0000'null
Edd

null characterですか?この質問に対するいくつかの回答は、デフォルト値をヌル文字として参照しています。
Quazi Irfan 2015

3
@ÓscarLópez、char '\ 0'はどうですか?それらは同じではありませんか?
タリック2015年

5
@Tarikはい、同じです。
オスカル・ロペス

3
@iamcreasyあなたの言うことは正しいです。私のメモは、「ヌル文字」は文字であるということです。これはnullJava用語ではありません。つまり\u0000 == null、返されますfalse
Edd

30

'\ u0000'は文字のデフォルト値です。10進数に相当するものは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 2018

cとc1の両方を '\ u0000' System.out.println(c + c1);とすると、「0」になります。
アラン



0

その魅力的な言い方は、以下の証明のように空白または整数0です。

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

しかし、プラットフォームによって、または将来的に異なる可能性があるため、そうは言いません。私が本当に気にかけているのは、このデフォルト値を決して使用しないことです。したがって、charを使用する前に、\ u0000かどうかを確認してから、プログラムの誤解を避けるために使用してください。それと同じくらい簡単です。


0

charデータ型のデフォルト値は「\ u0000」(または0)で、最大値は「\ uffff」(または65,535を含む)です。

あなたはここで情報を見ることができます


2
質問には、すでに受け入れられた回答と他のいくつかの回答があります。あなたの答えが役立つためには、問題に役立つ新しい情報や新しい洞察を追加する必要があります。他の回答で情報を繰り返すだけでは役に立ちません。
AdrianHHH 2014

0

nullとゼロの間には明確な違いがあることに注意してください。でhttp://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(上記参照)、文が行われます-

任意の参照型の値として使用できる特別なnullリテラルもあります。nullは、プリミティブ型の変数を除くすべての変数に割り当てることができます。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' (最後のものは、4つのゼロを有している第一1は5ゼロを持っています。)


@ JohannesH.-これは私への答えのように見えます。これを「回答ではない」としてフラグを立てることは、正しいIMOではありません。
krease 2016

-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のデフォルト値はnullで、Unicodeチャートによると「\ 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();   
    } }

注:出力は空白です。


-2

Java言語仕様に記載されているように、charプリミティブ型のデフォルト値は '\ u0000'(ヌル文字)です。

'u0000'のショートカットは '\ 0'であるため、nullは 'u0000'または '\ 0'のいずれかで表すことができます。

以下のJavaプログラムは、インスタンスのcharフィールド「c」を使用してnull表現を検証します。

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.