char c = '\u0000';
Коли я друкую c, у вікні командного рядка відображається "a".
То яке значення за замовчуванням для поля типу char?
Хтось сказав, що "\ u0000" означає нуль в Unicode; це так?
char c = '\u0000';
Коли я друкую c, у вікні командного рядка відображається "a".
То яке значення за замовчуванням для поля типу char?
Хтось сказав, що "\ u0000" означає нуль в Unicode; це так?
Відповіді:
Значенням char
атрибута за замовчуванням дійсно є '\u0000'
(нульовий символ), як зазначено у Специфікації мови Java, розділ §4.12.5 Початкові значення змінних .
У моїй системі рядок System.out.println('\u0000');
друкує трохи квадрата, це означає, що це не друкується символ - як очікувалося.
'\u0000'
це не таке саме значення, як null
null character
? Деякі відповіді на ці запитання стосуються значення за замовчуванням як нульовий символ.
null
в Java-термінах, тобто \u0000 == null
повернетьсяfalse
'\ 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);
}
}
Цей код буде друкувати вірно для останнього друку.
Значення символу за замовчуванням - символ.MIN_VALUE, який внутрішньо представлений якMIN_VALUE = '\u0000'
Крім того, ви можете перевірити, чи містить поле символів значення за замовчуванням як
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
'\u0000'
розшифровується як null
. Отже, якщо ви надрукуєте неініціалізовану змінну char, ви нічого не отримаєте.
Це '\ u0000'. Дивіться тут для отримання додаткової інформації .
Типовим символом є символ із значенням int 0 (нуль).
char NULLCHAR = (char) 0;
char NULLCHAR = '\ 0';
його спокусливе слово, наприклад, пробіл або ціле число 0, як показано нижче
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
але я б не сказав так, тому що це може відрізнятися на різних платформах або в майбутньому. Мене дуже турбує те, що я ніколи не буду використовувати це значення за замовчуванням, тому перед використанням будь-якого символу просто переконайтеся, що він \ u0000 чи ні, а потім використовуйте його, щоб уникнути помилок у програмах. Це так просто.
Значення за замовчуванням для типу даних char - '\ u0000' (або 0) і максимальне значення '\ uffff' (або 65 535 включно).
Інформацію ви можете побачити тут .
Зверніть увагу, що між нульовим та нульовим значенням є різниця. У http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (на яке посилається вище) робиться заява: -
Також існує спеціальний нульовий літерал, який можна використовувати як значення для будь-якого посилального типу. null може бути присвоєно будь-якій змінній, крім змінних примітивних типів. Ви мало що можете зробити з нульовим значенням, окрім тестування на його наявність. Тому null часто використовується в програмах як маркер, щоб вказати, що якийсь об’єкт недоступний.
Ось чому наступні твердження дадуть вам помилку, а не інші: -
char a = нуль; // Невідповідність типу: неможливо перетворити з null на char.
char b = 0; // Дійсний синтаксис.
\u0000
- значення за замовчуванням для типу char у Java
Як згадували інші, ви можете використовувати порівняння, щоб перевірити значення неініціалізованої змінної.
char ch;
if(ch==0)
System.out.println("Default value is the null character");
Значення за замовчуванням char
- \ u0000
public class DefaultValues {
char varChar;
public static void main(String...l)
{
DefaultValues ob =new DefaultValues();
System.out.println(ob.varChar=='\u0000');
}
}
Це повернеться правдою
Значенням за замовчуванням char є нуль, яке відповідно до діаграми 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();
} }
Примітка: Вивід порожній.
Значення за замовчуванням для примітивного типу char - '\ u0000' (нульовий символ), як зазначено в специфікації мови Java.
Ярлик для 'u0000' є '\ 0', отже, нуль може бути представлений або 'u0000', або '\ 0'.
Наведена нижче програма Java перевіряє нульові подання за допомогою поля символу екземпляра '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