Twi*_*one 4 java variables bytecode switch-statement
使用它的优点和缺点是什么:
String a = new String();
switch (i) {
case 1: a = "Cueck"; break;
case 2: a = "Blub"; break;
case 3: a = "Writing cases is BORING!"; break;
}
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)
与:
switch (i) {
case 1: System.out.println("Cueck"); break;
case 2: System.out.println("Blub"); break;
case 3: System.out.println("Writing cases is BORING!"); break;
}
Run Code Online (Sandbox Code Playgroud)
哪个生成更好的字节码?哪个生成更多字节码?
您的第一个选项是整洁,并且冗余代码更少.一个建议的变化:
String a;
switch (i) {
case 1: a = "Cueck"; break;
case 2: a = "Blub"; break;
case 3: a = "Writing cases is BORING!"; break;
default: throw new IllegalStateException("Unknown option!");
}
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)
不要不必要地创建String - a
应该在需要时进行instatiated.默认情况下应抛出异常或设置a
为默认值.
哪个生成更好的字节码?哪个生成更多字节码?
我不担心.这并没有把我视为任何现实应用程序中的一个可能的瓶颈.此外,您无法确定在应用程序运行后JVM将如何优化字节代码.