Как компилятор выбирает, какую инструкцию использовать?
Первое, что нужно знать: любой switch в Java компилируется в одну из двух JVM-инструкций:
>
tableswitch>
lookupswitchПрежде чем разбирать, как работает каждая из них, давайте посмотрим, как компилятор решает, какую выбрать.
Следующий код сгенерирует
tableswitch:public String tableSwitch() {
return switch (value) {
case 1 -> "one";
case 2 -> "two";
case 4 -> "four";
default -> "other";
};
}А вот этот код сгенерирует
lookupswitch:public String lookupSwitch() {
return switch (value) {
case 1 -> "one";
case 10 -> "ten";
case 100 -> "one hundred";
default -> "other";
};
}Видишь разницу?
👍 — да. вижу
🔥 — нужно разбирать
👉 Java Portal