Подготовка к OCA chapter 2

Продолжается подготовка к OCA. На этой неделе грыз главу вторую книги OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808 под названием: Operators and Statements.

На очереди следующий набор странностей, о которых нужно знать и поскорее забыть после экзамена :)

если вы думаете, что следующее выражение некорректно, то вы ошибаетесь:

1
2
int x = 5;
System.out.println(x > 2 ? x < 4 ? 10 : 8 : 7);

насчет следующего скорее всего тоже:

1
2
if (false) System.out.println("f");
else System.out.println("Failure");

слышали что-нибудь про Numeric promotion? Нет? Тогда профуканый вопрос на экзамене станет для вас сюрпризом, и получите неизбежную ошибку компилятора в следующем случае:

1
2
3
byte x = 5;
byte y = 15;
byte z = x + y;

следующий пример тоже относится к Numeric promotion, он не скомпилируется:

1
2
3
long x = 10;
int y = 5;
y = y * x;

а вот так скомпилируется:

1
2
3
long x = 10;
int y = 5;
y *= x;

Удивлены? Я тоже. Еще в Java можно так:

1
2
3
4
boolean b = false;
if (b=true){
...
}

Едем дальше. На очереди Core Java API.