【发布时间】:2023-03-08 07:30:01
【问题描述】:
我正在阅读此文档页面,http://developer.android.com/reference/android/util/Log.html。
这里的部分引起了我的注意:
提示:当你打电话时不要忘记这一点
Log.v(TAG, "index=" + i);当您构建要传递给 Log.d 的字符串时,编译器 使用 StringBuilder 并且至少发生三个分配: StringBuilder 本身、缓冲区和 String 对象。 实际上,还有另一个缓冲区分配和复制,并且 gc的压力更大。这意味着如果您的日志消息是 被过滤掉,你可能正在做大量的工作并招致 大量开销。
这意味着 Android 编译器正在接受字符串连接 (+) 并将它们转换为 StringBuilder 和附加语句。
我的假设是否正确,还是手动使用 StringBuilder 代替字符串连接更好?
【问题讨论】:
标签: android string stringbuilder string-concatenation