使用Java中的字符串切换案例 - garbagy?

时间:2013-03-21 16:12:52

标签: java string switch-statement java-7

Java在其Java7中引入了带有Strings的switch case。我想知道是否使用这样的开关盒会产生垃圾。

例如在我的程序中,

String s = getString();
switch(s) 
{
    case ABC: // ABC is a final static constant
    ...
    case CDE: // CDE is also final static constant.
    ...
}

java如何执行此切换案例。假设有10个这样的开关盒。每当它与string scase ABC匹配时,它会创建一个新字符串吗?

如果是这种情况,它非常粗俗,所以当我给100个案例的开关案例时,每次都会创建100个字符串。

1 个答案:

答案 0 :(得分:5)

如果case值是常量,那么对于类常量池应用相同的规则,就好像它根本不在case语句中一样。

这是good answer to a similar question,可能会对您有所帮助。