Эта викторина из 10 вопросов поможет вам проверить ваши знания по типам данных в Java. За каждым вопросом следует правильный ответ с кратким объяснением.
1. Что выведет следующий фрагмент кода на Java?
char ch = 'A'; int num = ch; System.out.println(num);
a) 65
b) A
c) Compilation error
d) Runtime error
Ответ:
a) 65
Объяснение:
В языке программирования Java символьные значения типа char
сохраняются в формате Unicode. Например, значение Unicode для символа ‘A’ равно 65. Поэтому, когда переменная ch
, содержащая символ ‘A’, неявно преобразуется в тип int
, она отображается как число 65.
2. Что выводит этот фрагмент кода на Java?
double value = 9.78; int number = (int) value; System.out.println(number);
a) 9.78
b) 9
c) 10
d) Compilation error
Ответ:
b) 9
Объяснение:
Приведение double
к типу int
убирает десятичную часть числа, поэтому 9,78
становится 9
.
3. Определите вывод следующего кода:
byte b1 = 127; byte b2 = -128; System.out.println(b1 + " " + b2);
a) 127 -128
b) 128 -129
c) Compilation error
d) Runtime error
Ответ:
a) 127 -128
Объяснение:
Тип данных byte
в Java имеет диапазон значений от -128 до 127. Таким образом, b1
имеет значение 127, а b2
равна -128.
4. Что будет выведено на экран?
float f = 100.001f; double d = f; System.out.println(d);
a) 100.001
b) 100.0
c) 100.001000046
d) Compilation error
Ответ:
c) 100.001000046
Объяснение:
Тип float
имеет меньшую точность, чем double
. Поэтому, когда значение типа float
присваивается переменной типа double
, оно автоматически преобразуется в тип double
для сохранения большей точности.
5. Что выведет этот фрагмент кода?
long l = 100L; float f = l; System.out.println(f);
a) 100
b) 100.0
c) 100L
d) Compilation error
Ответ:
b) 100.0
Объяснение:
Тип float
используется для представления чисел с плавающей точкой, поэтому результатом будет 100.0.
6. Каков результат выполнения этого кода?
boolean flag = false; if (!flag) { System.out.println("False"); } else { System.out.println("True"); }
a) False
b) True
c) Compilation error
d) Runtime error
Ответ:
a) False
Объяснение:
Оператор !
меняет логическое значение на противоположное. Если переменная flag
равна false, то !flag
становится true, и поэтому выводится “False”.
7. Что выведет следующий фрагмент кода?
short s = 10; s = (short) (s + s); System.out.println(s);
a) 10
b) 20
c) Compilation error
d) Runtime error
Ответ:
b) 20
Объяснение:
Результат выражения s + s
преобразуется в тип int
. Чтобы присвоить его обратно переменной s
, нужно привести его к типу short
. Значение переменной s
становится 20.
8. Что выведет следующий фрагмент кода?
String str = "12345"; int num = Integer.parseInt(str); System.out.println(num);
a) 12345
b) “12345”
c) Compilation error
d) Runtime error
Ответ:
a) 12345
Объяснение:Integer.parseInt
преобразует String
“12345” в int
12345.
9. Что будет выведено на экран?
int a = '2' - '0'; System.out.println(a);
a) 2
b) 50
c) 32
d) Compilation error
Ответ:
a) 2
Объяснение:
В Java значения типа char
хранятся как значения Unicode. Значение Unicode для символа ‘2’ равно 50, а для символа ‘0’ – 48. Следовательно, выражение оценивается как 50 – 48 и дает в результате 2.
10. Каков результат выполнения следующего фрагмента кода?
double d1 = 0.1; double d2 = 0.2; double sum = d1 + d2; System.out.println(sum);
a) 0.3
b) 0.30000000000000004
c) 0.30000000000000003
d) 0.29999999999999999
Ответ:
b) 0.30000000000000004
Объяснение:
В Java при использовании чисел с плавающей точкой могут возникать ошибки в точности. Например, при сложении 0.1 и 0.2 вместо ожидаемого 0.3 мы получаем значение 0.30000000000000004.
Перевод статьи «Java Data Types Coding Questions and Answers».