apa nilai default dari char?


89
char c = '\u0000';

Ketika saya mencetak c, itu menunjukkan 'a' di jendela baris perintah.

Jadi apa nilai default dari bidang tipe karakter?

Seseorang berkata '\ u0000' berarti null dalam unicode; Apakah itu benar?


Anda dapat memeriksa apakah karakter Anda memiliki nilai default dengan:char == 0
ACV

Jawaban:


105

Nilai default dari sebuah charatribut memang '\u0000'(karakter null) seperti yang dinyatakan dalam Spesifikasi Bahasa Java, bagian §4.12.5 Nilai Awal Variabel .

Di sistem saya, garis System.out.println('\u0000');mencetak sedikit persegi, artinya itu bukan karakter yang dapat dicetak - seperti yang diharapkan.


26
Penting untuk dicatat bahwa '\u0000'nilainya tidak sama dengan null
Edd

Apa null character? Beberapa jawaban atas pertanyaan ini merujuk pada nilai default sebagai karakter null.
Quazi Irfan

3
@ Óscar López, Bagaimana dengan karakter '\ 0'? mereka tidak sama?
Tarik

5
@Tarik ya, mereka sama.
Óscar López

3
@iamcreasy apa yang Anda katakan benar. Catatan saya hanya bahwa 'karakter nol' adalah karakter. Ini tidak nulldalam istilah java yaitu \u0000 == nullakan kembalifalse
Edd

30

'\ u0000' adalah nilai default untuk sebuah karakter. Setara desimalnya adalah 0.

Saat Anda mendeklarasikan beberapa variabel char tanpa memulainya, '\ u0000' akan ditetapkan secara default.

lihat kode ini

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

Kode ini akan dicetak benar untuk cetakan terakhir.


9

Nilai default dari Character adalah Character.MIN_VALUE yang secara internal direpresentasikan sebagaiMIN_VALUE = '\u0000'

Selain itu, Anda dapat memeriksa apakah bidang karakter berisi nilai default sebagai

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

}

7

'\u0000'singkatan null. Jadi jika Anda mencetak variabel char yang tidak diinisialisasi, Anda tidak akan mendapatkan apa-apa.


2
Sebenarnya Anda akan mendapatkan kesalahan kompilasi;) '\ u0000' adalah nilai default di mana kolom char 'diinisialisasi' dengan
Edd

1
Anda tidak akan mendapatkan apa-apa. Anda akan mendapatkan ruang putih atau persegi.
Roshana Pitigala

Saya mendapat "0" jika saya menempatkan c dan c1 sebagai '\ u0000' System.out.println (c + c1);
alan


0

Karakter default adalah karakter dengan nilai int 0 (nol).

char NULLCHAR = (char) 0;

char NULLCHAR = '\ 0';


0

yang menggoda katakanlah sebagai spasi putih atau bilangan bulat 0 sesuai bukti di bawah ini

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

tetapi saya tidak akan mengatakannya karena, itu mungkin berbeda platform atau di masa depan. Yang benar-benar saya pedulikan adalah saya tidak akan pernah menggunakan nilai default ini, jadi sebelum menggunakan karakter apa pun, cukup periksa apakah \ u0000 atau tidak, kemudian gunakan untuk menghindari kesalahpahaman dalam program. Sesederhana itu.


0

Nilai default dari tipe data char adalah '\ u0000' (atau 0) dan nilai maksimum '\ uffff' (atau termasuk 65.535).

Kalian bisa lihat infonya disini .


2
Pertanyaan tersebut sudah memiliki jawaban yang diterima ditambah beberapa jawaban lainnya. Agar jawaban Anda bermanfaat, itu harus menambahkan informasi baru yang berguna atau wawasan baru untuk masalah tersebut. Mengulangi informasi di jawaban lain tidak membantu.
AdrianHHH

0

Perhatikan bahwa ada perbedaan mencolok antara nol dan nol. Di http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (direferensikan di atas), pernyataan dibuat: -

Ada juga literal null khusus yang dapat digunakan sebagai nilai untuk jenis referensi apa pun. null dapat diberikan ke variabel apapun, kecuali variabel tipe primitif. Tidak banyak yang dapat Anda lakukan dengan nilai nol selain menguji keberadaannya. Oleh karena itu, null sering digunakan dalam program sebagai penanda untuk menunjukkan bahwa beberapa objek tidak tersedia.

Itulah mengapa pernyataan berikut akan memberi Anda kesalahan dan bukan yang lain: -

char a = null; // Ketik mismatch: tidak dapat mengubah dari null menjadi char.

char b = 0; // Sintaks yang valid.


0

\u0000 adalah nilai default untuk tipe karakter di Java

Seperti yang disebutkan orang lain, Anda dapat menggunakan perbandingan untuk memeriksa nilai variabel yang tidak diinisialisasi.

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

-1

Saya pikir itu '\u00000'atau lebih ''tepatnya '\u0000' (Yang pertama memiliki 5 nol sedangkan yang terakhir memiliki empat nol.)


@ JohannesH.- ini sepertinya jawaban bagi saya. Menandai ini sebagai 'bukan jawaban' bukanlah IMO yang benar.
Krease

-1

Nilai default untuk charadalah \ u0000

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

Ini akan kembali benar


-1

Nilai default char adalah null yaitu '\ u0000' sesuai bagan Unicode . Mari kita lihat cara kerjanya saat mencetak.

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

Catatan: Outputnya kosong.


-2

Nilai default dari tipe primitif char adalah '\ u0000' (karakter null) seperti yang dinyatakan dalam Spesifikasi Bahasa Java.

Pintasan untuk 'u0000' adalah '\ 0', Jadi nol dapat direpresentasikan dengan 'u0000' atau '\ 0'.

Program Java di bawah ini memvalidasi representasi nol menggunakan contoh bidang 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);
    }

}

keluaran:

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.