switch中的表达式在1.7以前支持byte,short,int,char,包括他们的封装类型。 在1.7以后支持String,boolean类型。 jdk1.7并没有新的指令来处理switch string,而是通过调用switch中string.hashCode,将string转换为int从而进行判断。 原理详细参考:http://freish.iteye.com/blog/1152921