厳密にはhashCodeが先に比較される。
SwitchSample.java
public class SwitchSample {
public static void main(String[] args) {
final String empty = "";
final String newEmpty = new String("");
//True
System.out.println(newEmpty.equals(empty));
//False
System.out.println(newEmpty == empty);
//True
System.out.println(newEmpty.hashCode() == empty.hashCode());
switch (newEmpty) {
case empty:
System.out.println("一致");
break;
default:
System.out.println("不一致");
break;
}
}
}
true
false
true
一致
参考
[mi_kami's diary : Java7のswitch文から得られるバイトコードの考察]
(http://mikamikuh.hatenablog.com/entry/2013/07/02/235156)