switch(String)语法糖解析
Java1.5之前,switch语法结构仅支持int, byte, short, char这几个基本类型(及对应的包装类型)。
1.5后提供了enum枚举结构。
Java7提供了switch(String)结构。
问题一
经常听到Java7中提供的switch(String)是Java语言的一个语法糖,实际JVM并不支持这个语法结构,但这个语法糖具体是怎么实现的,一直没有看过,今天比较有空,我来研究一下。
首先写一段switch结构的代码。
public static void main(String[] args) {
final String str = "F";
switch (str) {
case "A" :
System.out.println("A");
break;
case "B" :
System.out.println("B");
break;
default:
System.out.println("F");
}
}
查看idea反编译后的源码。
public static void main(String[] args) {
String str = "F";
String var2 = "F";
byte var3 = -1;
switch(var2.hashCode()) {
case 65:
if (var2.equals("A")) {
var3 = 0;
}
break;
case 66:
if (var2