【发布时间】:2013-03-08 09:49:20
【问题描述】:
使用这个有什么优缺点:
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);
对比:
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;
}
哪个生成更好的字节码?哪个生成更多的字节码?
【问题讨论】:
-
我建议您获取 ASM 字节码大纲并自行测试。 :)
-
除非它被执行 420 亿次,否则我不会担心它......这个问题只是理论上的问题,还是真正的问题?
-
我建议你使用第二种方法,因为只创建了 3 个
String文字,而在第一个中,有 4 个String对象 -
这两个程序对于实例的行为不同,i=0)
-
建议您从顶级示例中删除
= new String()并在您的 switch 语句中添加默认情况。
标签: java variables switch-statement bytecode