1、Strings in switch Statements
In the JDK 7 release, you can use a String
object in the expression of aswitch
statement:
public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
String typeOfDay;
switch (dayOfWeekArg) {
case "Monday":
typeOfDay = "Start of work week";
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
typeOfDay = "Midweek";
break;
case "Friday":
typeOfDay = "End of work week";
break;
case "Saturday":
case "Sunday":
typeOfDay = "Weekend";
break;
default:
throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
}
return typeOfDay;
}
The switch
statement compares the String
object in its expression with the expressions associated with eachcase
label as if it were using theString.equals
method; consequently, the comparison ofString
objects inswitch
statements is case sensitive. The Java compiler generates generally more efficient bytecode fromswitch
statements that useString
objects than from chainedif-then-else
statements.
参考:http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html
2、和一连串的if-else-then想比,使用switch来计较String,Java编译器会生成更加有效的字节码