【发布时间】:2020-01-08 13:34:58
【问题描述】:
我有一个循环(当我从蓝牙接收到数据时,每次迭代重复 2 次),我使用 StringBuilder 单独附加数据,在最终过程中我需要 清除 StringBuilder obj,
我现在正在使用新的实例化,但是,我已经使用了.setLength 方法,这比.setLength 或新的实例化更好?
从蓝牙设备接收数据的代码示例:
private void receive(byte[] data) {
peso.append(new String(data));
receiveText.setText(peso.toString().replaceAll("(\\r|\\n)", "")+" Kg");
// int i = Integer.parseInt(peso.toString().replaceAll(("\\r|\\n"), ""));
Log.i("Val of append actual", String.valueOf(peso));
if(peso.length() >= 3)
peso = new StringBuilder();
}
其他细节: 我知道我的“比索”的最大尺寸,这对选择有帮助吗?
【问题讨论】:
-
为了清楚起见,您能否分享一下您正在执行此操作的代码。
-
您不太可能看到任何显着差异。将变量保持在一个小范围内并创建一个新对象可以正常工作并且不会提供任何惊喜。使用
setLength(0)不会给您带来任何性能优势,但您的代码最终可能看起来“更奇怪”。 -
您可以edit您的帖子并添加minimal reproducible example。
-
OP 清楚地知道副本解决了哪些问题。这个问题是关于它以哪种方式完成是否重要(它很可能不重要)。
-
对不起,我现在添加代码,谢谢大家!
标签: java android performance stringbuilder