char c = '\u0000';
Kiedy drukuję c, w oknie wiersza poleceń wyświetla się „a”.
Jaka jest więc domyślna wartość pola typu char?
Ktoś powiedział „\ u0000” oznacza zero w Unicode; czy to prawda?
char c = '\u0000';
Kiedy drukuję c, w oknie wiersza poleceń wyświetla się „a”.
Jaka jest więc domyślna wartość pola typu char?
Ktoś powiedział „\ u0000” oznacza zero w Unicode; czy to prawda?
Odpowiedzi:
Wartością domyślną char
atrybutu jest rzeczywiście '\u0000'
(znak null), jak określono w specyfikacji języka Java, sekcja §4.12.5 Początkowe wartości zmiennych .
W moim systemie linia System.out.println('\u0000');
jest wyświetlana jako mały kwadrat, co oznacza, że nie jest to znak drukowalny - zgodnie z oczekiwaniami.
'\u0000'
nie jest to ta sama wartość, co null
null character
? Niektóre odpowiedzi na te pytania odnoszą się do wartości domyślnej jako znaku null.
null
w kategoriach java tzn \u0000 == null
wrócifalse
„\ u0000” to domyślna wartość znaku. Jego odpowiednik dziesiętny to 0.
Gdy deklarujesz jakąś zmienną typu char bez jej inicjalizacji, domyślnie zostanie do niej przypisane '\ u0000'.
zobacz ten kod
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);
}
}
Ten kod wyświetli prawdę dla ostatniego wydruku.
Wartość domyślna Character to Character.MIN_VALUE, która jest wewnętrznie reprezentowana jakoMIN_VALUE = '\u0000'
Dodatkowo możesz sprawdzić, czy pole znaku zawiera domyślną wartość jako
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
'\u0000'
oznacza null
. Więc jeśli wydrukujesz niezainicjowaną zmienną char, nic nie otrzymasz.
To „\ u0000”. Więcej informacji znajdziesz tutaj .
Domyślny znak to znak o wartości int równej 0 (zero).
char NULLCHAR = (char) 0;
char NULLCHAR = '\ 0';
jego kuszące powiedzenie jako biała spacja lub liczba całkowita 0, jak na poniższy dowód
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
ale nie powiedziałbym tego, ponieważ może to różnić się na różnych platformach lub w przyszłości. Najbardziej zależy mi na tym, że nigdy nie użyję tej wartości domyślnej, więc przed użyciem jakiegokolwiek znaku po prostu sprawdź, czy jest to \ u0000 lub nie, a następnie użyj go, aby uniknąć nieporozumień w programach. To takie proste.
Domyślna wartość typu danych char to „\ u0000” (lub 0), a maksymalna wartość „\ uffff” (lub 65 535 włącznie).
Możesz zobaczyć informacje tutaj .
Zauważ, że istnieje wyraźna różnica między wartością null a zerem. W http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (przywołanym powyżej), stwierdza się: -
Istnieje również specjalny literał null, którego można użyć jako wartości dla dowolnego typu odwołania. null można przypisać do dowolnej zmiennej, z wyjątkiem zmiennych typu pierwotnego. Niewiele można zrobić z wartością zerową poza testowaniem jej obecności. Dlatego wartość null jest często używana w programach jako znacznik wskazujący, że jakiś obiekt jest niedostępny.
Dlatego poniższe stwierdzenia dadzą ci błąd, a nie inne: -
char a = null; // Niezgodność typów: nie można przekonwertować wartości null na znak.
char b = 0; // Prawidłowa składnia.
\u0000
jest domyślną wartością typu char w Javie
Jak wspominali inni, możesz użyć porównania, aby sprawdzić wartość niezainicjowanej zmiennej.
char ch;
if(ch==0)
System.out.println("Default value is the null character");
Wartość domyślna char
to \ u0000
public class DefaultValues {
char varChar;
public static void main(String...l)
{
DefaultValues ob =new DefaultValues();
System.out.println(ob.varChar=='\u0000');
}
}
To wróci prawda
Domyślna wartość char to null, czyli „\ u0000” zgodnie z wykresem Unicode . Zobaczmy, jak to działa podczas drukowania.
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();
} }
Uwaga: dane wyjściowe są puste.
Domyślną wartością typu pierwotnego typu char jest „\ u0000” (znak pusty), jak określono w specyfikacji języka Java.
Skrótem dla „u0000” jest „\ 0”, więc wartość null może być reprezentowana przez „u0000” lub „\ 0”.
Poniższy program Java weryfikuje reprezentacje wartości null przy użyciu pola znaku instancji „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