作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 {}
代替字符串连接有什么优势吗?
来自 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, ... }
.它们的数量应该足够少,因此性能并不那么重要。
关于optimization - Logger slf4j 使用 {} 格式化而不是字符串连接的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555409/
我是一名优秀的程序员,十分优秀!