У меня есть сомнения в формулировке переключателя.
Вот мой код:
String month = "April";
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
и т. Д. *
У меня есть 3 вопроса в этом контексте:
1) При сравнении месяца со значениями регистра, т.е. регистр «Январь», регистр
"Февраль" .. Что именно используется из следующего компилятором ??
- month.equals ("case-value")?
- месяц == значение дела?
2) И являются ли значения прецедентов внутренне преобразованными в StringBuilder / StringStringBuffer или они просто остаются объектами String ??
3) Как я могу узнать это из байт-кода, т.е. есть ли какой-либо инструмент, с помощью которого я могу просматривать непосредственно сгенерированный компилятором код, просто чтобы выяснить, как все ведет себя внутри?