使用 {} 代替字符串连接有什么优势吗?

来自 slf4j 的示例

logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT); 

而不是

logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT); 

我认为这与速度优化有关,因为根据配置文件,可以在运行时避免参数评估(和字符串连接)。但只有两个参数是可能的,那么有时除了字符串连接之外别无选择。需要对此问题的看法。

请您参考如下方法:

是关于字符串连接性能的。如果您有密集的日志记录语句,这可能很重要。

(Prior to SLF4J 1.7) But only two parameters are possible

由于绝大多数日志记录语句都有 2 个或更少的参数,因此 SLF4J API 至 1.6 版本(仅)涵盖了大多数用例。自 API 版本 1.7 起,API 设计者就提供了带有可变参数参数的重载方法。

对于需要 2 个以上且无法使用 1.7 之前的 SLF4J 的情况,只需使用字符串连接或 new Object[] { param1, param2, param3, ... }。它们的数量应该足够少,因此性能并不那么重要。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!