1. 程式人生 > >switch語句表示式的值可是String嗎

switch語句表示式的值可是String嗎

在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;
}