2017-12-02 225 views

回答

0

switch語句將其表達式中的String對象與與每個case標籤關聯的表達式進行比較,就好像它使用String.equals方法一樣;因此,switch語句中的String對象的比較區分大小寫。

Java Switch案例使用String.equals()方法比較傳遞的值與大小寫的值。

根據Switch的Strings中的Java 7文檔,Java編譯器通過使用String對象的switch語句比鏈式if-then-else語句生成通常更高效的字節碼。

見下面的例子:

String fruit ="Mango";  

    switch (fruit) { 
    case "Apple": System.out.println("It's Apple : "+"Apple".hashCode());   
        break; 
    case "mango": System.out.println("It's mango : "+"mango".hashCode()); 
        break; 
    case "Mango": System.out.println("It's Mango : "+"Mango".hashCode()); 
        break; 
    } 

JVM轉換此如下:

String fruit = "Mango"; 

    String str1; 
    switch ((str1 = fruit).hashCode()) { 
    case 63476538: 
     if (str1.equals("Apple")) { 
      System.out.println("It's Mango : " + "Mango".hashCode()); 
      } 
     break; 
    case 74109858: 
     if (str1.equals("Mango")) { 
      System.out.println("It's Mango : " + "Mango".hashCode()); 
     } 
     break; 
    case 103662530: 
     if (!str1.equals("mango")) { 
      System.out.println("It's mango : " + "mango".hashCode()); 
      return; 
     } 
     break; 
    } 
+0

我想知道,JVM使用了什麼散列概念? –

+0

@TarunTyagi是的,它使用哈希。檢查編輯的安裝程序 –

+0

您也應該使用默認情況下顯示一個示例。 –

相關問題