我有一个与字符串切换案例相关的查询,如果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