与Java中的字符串交换大小写-垃圾



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 scase ABC时创建一个新字符串吗?

如果是这种情况,它是非常垃圾的,所以当我给switch case 100个case,那么每次将创建100个字符串

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

对于类似的问题,这是一个很好的答案,可能会对你有所帮助。

最新更新