在JDK1.6以前的版本中,switch语句表达式的值必须是整形或字符型;
在JDK1.7版本中,switch除了整型和字符型,还可以是字符串类型。
但是,他是怎么实现的呢?
实际上,Java虚拟机和字节码层次上只支持switch语句中使用与整数类型兼容的类型没有变,只是这个实现字符串比较的新特性是在编译器这个层次上实现的。实现的机制是:将字符串之间的比较转换为其哈希值的比较。参考文章:【Model_frog-java7中switch比较字符串】
String s1="s1";
switch (s1) {
case "s1":
System.out.println(s1);
break;
default:
break;
}