char c = '\u0000';
Quando stampo c, mostra "a" nella finestra della riga di comando.
Allora qual è il valore predefinito di un campo di tipo char?
Qualcuno ha detto che "\ u0000" significa null in Unicode; è giusto?
char c = '\u0000';
Quando stampo c, mostra "a" nella finestra della riga di comando.
Allora qual è il valore predefinito di un campo di tipo char?
Qualcuno ha detto che "\ u0000" significa null in Unicode; è giusto?
Risposte:
Il valore predefinito di un char
attributo è infatti '\u0000'
(il carattere null) come dichiarato nella specifica del linguaggio Java, sezione §4.12.5 Valori iniziali delle variabili .
Nel mio sistema, la linea System.out.println('\u0000');
stampa un quadratino, il che significa che non è un carattere stampabile, come previsto.
'\u0000'
non è lo stesso valore di null
null character
? Alcune risposte a queste domande fanno riferimento al valore predefinito come carattere nullo.
null
in termini Java, vale a dire \u0000 == null
ritornerebbefalse
"\ u0000" è il valore predefinito per un carattere. Il suo equivalente decimale è 0.
Quando dichiari una variabile char senza inizializzarla, "\ u0000" le verrà assegnato per impostazione predefinita.
vedere questo codice
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);
}
}
Questo codice verrà stampato vero per l'ultima stampa.
Il valore predefinito di Character è Character.MIN_VALUE, rappresentato internamente comeMIN_VALUE = '\u0000'
Inoltre, puoi verificare se il campo del carattere contiene il valore predefinito come
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
'\u0000'
sta per null
. Quindi se stampi una variabile char non inizializzata, non otterrai nulla.
È "\ u0000". Vedi qui per maggiori informazioni .
Il carattere predefinito è il carattere con un valore int di 0 (zero).
char NULLCHAR = (char) 0;
char NULLCHAR = '\ 0';
è allettante diciamo come spazio bianco o intero 0 come da prova sotto
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
ma non lo direi perché, potrebbe differire in diverse piattaforme o in futuro. Quello che mi interessa davvero è che non userò mai questo valore predefinito, quindi prima di usare qualsiasi carattere controlla che sia \ u0000 o meno, quindi usalo per evitare idee sbagliate nei programmi. E 'così semplice.
Il valore predefinito di un tipo di dati char è "\ u0000" (o 0) e un valore massimo di "\ uffff" (o 65.535 inclusi).
Puoi vedere le informazioni qui .
Nota che c'è una netta differenza tra null e zero. In http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (a cui si fa riferimento sopra), viene fatta l'affermazione: -
C'è anche uno speciale valore letterale null che può essere usato come valore per qualsiasi tipo di riferimento. null può essere assegnato a qualsiasi variabile, ad eccezione delle variabili di tipo primitivo. C'è poco che puoi fare con un valore nullo oltre a testare la sua presenza. Pertanto, null viene spesso utilizzato nei programmi come indicatore per indicare che alcuni oggetti non sono disponibili.
Ecco perché le seguenti affermazioni ti daranno un errore e non l'altro: -
char a = null; // Tipo non corrispondente: impossibile convertire da null a char.
char b = 0; // Sintassi valida.
\u0000
è il valore predefinito per il tipo char in Java
Come altri menzionati, puoi usare il confronto per controllare il valore di una variabile non inizializzata.
char ch;
if(ch==0)
System.out.println("Default value is the null character");
Il valore predefinito per char
è \ u0000
public class DefaultValues {
char varChar;
public static void main(String...l)
{
DefaultValues ob =new DefaultValues();
System.out.println(ob.varChar=='\u0000');
}
}
Questo restituirà vero
Il valore predefinito di char è null che è "\ u0000" come da grafico Unicode . Vediamo come funziona durante la stampa.
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();
} }
Nota: l'output è vuoto.
Il valore predefinito di un tipo primitivo char è "\ u0000" (carattere null) come indicato nella specifica del linguaggio Java.
La scorciatoia per "u0000" è "\ 0", quindi il null può essere rappresentato da "u0000" o "\ 0".
Il seguente programma Java convalida le rappresentazioni nulle utilizzando il campo char di istanza "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);
}
}
char == 0