По мере подготовки к сертификационному экзамену SCJP, а также при чтении в различных источниках о нюансах использования языка Java возникает множество различных вопросов.
Также некоторые особенности языка кажутся совершенно нелогичными, но это указано в спецификации языка, и каждый уважающий себя профессионал стремится знать эти мелочи.
Эта тема посвящена коротким примерам программ (или участков кода).
Каждая программа требует ответов на простые вопросы: как она будет выполняться и что будет выведено на консоль после ее выполнения.
Предполагается Java 1.6, если иное не указано в задании.
P.S. Если у вас есть интересные задания на ту же тему, пишите их в комментариях.
Представляю вашему вниманию первую партию заданий.
- Какую числовую константу нужно подставить вместо многоточия, чтобы выражение стало истинным? (также принимаются ответы в виде стандартных констант, объявленных в классах-обертках над примитивными типами)
(int) ((char) -1) == .
(short) ((int) ((char) -1)) == .
- Какую константу следует подставить вместо многоточия, чтобы на экране отображалось COOL?
int x = .
Что изменится, если изменить тип на long?; if (x != 0 && x == -x) { System.out.println("COOL"); }
- Какую константу следует подставить вместо многоточия, чтобы на экране отображалось COOL?
double x = .
; if (x != x) { System.out.println("COOL"); }
- Какой результат будет в результате выполнения этой программы?
public class Test { static int a() { print("a"); return 1; } static int b() { print("b"); return 1; } static int c() { print("c"); return 1; } static void print(String s) { System.out.println(s); } public static void main(String[] p) { int d = a() + b() * c(); print("" + d); } }
- Какой результат будет в результате выполнения этой программы?
public class Test { static int a() { print("a"); return 1; } static int b() { print("b"); return 1; } static int c() { print("c"); return 1; } static void print(String s) { System.out.println(s); } public static void main(String[] p) { if (a() == b() || a() == c()) { print("d"); } } }
- Какой результат будет в результате выполнения этой программы?
public class Test { static int a() { print("a"); return 1; } static int b() { print("b"); return 1; } static int c() { print("c"); return 1; } static void print(String s) { System.out.println(s); } public static void main(String[] p) { try { if ((a() + b()) / (a() - b()) + c() == a()) { print("d"); } } catch (Throwable e) { } } }
- Какой результат будет в результате выполнения этой программы?
class BasicExcept extends RuntimeException { private int b = 10; public BasicExcept() { b = 15; throw this; } { b = 5; } public int getB() { return b; } public String toString() { return "Superclass"; } } class Except extends BasicExcept { private int a = 10; public Except() { super(); a = 15; } { a = 5; } public int getA() { return a; } public String toString() { return "Subclass"; } } public class Test { public static void main(String[] args) { try { new Except(); System.out.println("No exception"); } catch (Except e) { System.out.println("Exception occured! A = " + e.getA() + ", B = " + e.getB() + ", toString() = " + e.toString()); } } }
- Какой результат будет в результате выполнения этой программы?
class TryExcept extends RuntimeException { private String s; static { init(); } public TryExcept() { s = "Hahaha"; } private static void init() { throw new TryExcept(); } public String get() { return s; } } public class Test { public static void main(String[] args) { for (int i = 0; i < 2; i++) { try { new TryExcept(); } catch (Throwable e) { System.out.println("e = " + e); if (e.getCause() instanceof TryExcept) { TryExcept ex = (TryExcept) e.getCause(); System.out.println("e instanceof " + TryExcept.class.getName() + ", s = " + ex.get()); } } } } }
-
Демография
19 Oct, 24 -
И Снова О Контрактах
19 Oct, 24 -
Google Работает Над Киберпанком
19 Oct, 24 -
Зенон – Игрушка Нового Поколения
19 Oct, 24 -
О Звездах
19 Oct, 24