switch文式の値はStringですか

459 ワード

JDK 1.6以前のバージョンでは、switch文式の値は整形または文字型でなければなりません.
JDK 1.7バージョンでは、switchは整数型と文字型のほか、文字列タイプであってもよい.
しかし、彼はどのように実現したのだろうか.
実際、Java仮想マシンとバイトコード階層ではswitch文で整数タイプと互換性のあるタイプを使用することしかサポートされていませんが、この実装文字列の比較の新しい特性はコンパイラという階層で実現されています.実装のメカニズムは、文字列間の比較をハッシュ値の比較に変換することである.参考記事:【Model_frog-java 7におけるswitch比較文字列】
String s1="s1";
switch (s1) {
    case "s1":
	System.out.println(s1);
	break;
    default:
	break;
}