Java在其Java7中引入了字符串的切换情况。我想知道使用这样的开关箱是否会产生垃圾。
例如在我的程序中,
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
时创建一个新字符串吗?
如果是这种情况,它是非常垃圾的,所以当我给switch case 100个case,那么每次将创建100个字符串
如果case值是常量,则同样的规则适用于类常量池,就好像它根本不在case语句中一样。
对于类似的问题,这是一个很好的答案,可能会对你有所帮助。