我有一個與字符串切換案例相關的查詢,如果jvm在字符串切換案例(功能在java 1.7中)如何內部工作?如何切換大小寫字符串(在java 1.7中)在內部工作?
回答
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;
}
我想知道,JVM使用了什麼散列概念? –
@TarunTyagi是的,它使用哈希。檢查編輯的安裝程序 –
您也應該使用默認情況下顯示一個示例。 –
- 1. 如何在DWT,Tridion中將大寫字符串轉換爲小寫字符串
- 2. 如何在JAVA中基於大小切斷字符串?
- 3. 如何在python中替換大小寫字符串,目標字符串在?
- 4. 如何使用切換大小寫和會話切換連接字符串
- 5. 反轉字符串並切換小寫大寫
- 6. Java如何將小寫字符串值轉換爲字符串數組中的大寫字符串
- 7. 使用大小寫字符混合來轉換字符串java
- 8. 如何在DBeaver中切換大寫字符轉換?
- 9. 在java中切斷部分字符串
- 10. java控制大寫和小寫字符串2字符串
- 11. 在vim中切換光標下的字符大小寫
- 12. 如何在Unicode中將字符串設置爲大寫/小寫?
- 13. 如何在utthon中將utf大寫字符轉換爲小寫
- 14. How +在JAVA中的字符串內部工作
- 15. 在R中,在字符串中將大寫字母切換爲小寫字母,反之亦然
- 16. 在PHP中使用大寫和小寫字符串操作
- 17. 在字符串中大寫元音java
- 18. 如何在CLEAN中小寫字符串
- 19. 如何使字符串大小寫不敏感的Java腳本字符串不區分大小寫的功能
- 20. 在Java中,如何解析比int大小大的字符串
- 21. 如何在使用Java的字符串中首字母大寫?
- 22. 在C++中替換子字符串不區分大小寫
- 23. 內部類和字符串在Java中
- 24. 字符串與年月日全部小寫在java中
- 25. 在java中將小寫字母轉換爲大寫字母
- 26. 如何將字符串(字符*)轉換爲大寫或小寫用C
- 27. 如何在java中使用開關大小寫字符?
- 28. 如何在Python中接受大小寫字符串
- 29. 如何在Ruby中隨機化字符串的大小寫?
- 30. 如何在NIM中更改字符串大小寫?
https://docs.oracle.com/javase/specs/jls/se9/html/jls-14 .html#jls-14.11 – prsvr
閱讀此:https://stackoverflow.com/questions/10836055/why-is-the-switch-statement-faster-than-if-else-for-string-in-java-7 – DoesData