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 s
和case ABC
匹配时,它会创建一个新字符串吗?
如果是这种情况,它非常粗俗,所以当我给100个案例的开关案例时,每次都会创建100个字符串。
答案 0 :(得分:5)
如果case值是常量,那么对于类常量池应用相同的规则,就好像它根本不在case语句中一样。
这是good answer to a similar question,可能会对您有所帮助。