【发布时间】:2012-09-09 14:41:27
【问题描述】:
可能重复:
what is the difference between String and StringBuffer in java?
当我使用 StringBuffer 和 String 测试一个函数时。当我使用 StringBuffer 时,我在 2 或 3 秒内得到 java.lang.OutOfMemoryError。但是,当我使用 String 时,直到一分钟我才得到 java.lang.OutOfMemoryError 错误。它们有什么不同,我不太清楚。
public void print() {
StringBuffer buffer = new StringBuffer();
double result = 1.0 / 7.0;
buffer.append(result);
while (result != 0) {
result = result % 7.0;
buffer.append(result);
}
System.out.println(buffer.toString());
}
public void print() {
String st = "";
double result = 1.0 / 7.0;
st = st + result;
while (result != 0) {
result = result % 7.0;
st = st + result;
}
System.out.println(st);
}
【问题讨论】:
-
会更快。我不知道为什么我的 StringBuffer 内存不足。现在,我参考stackoverflow.com/questions/2439243/…
-
StringBuffer更快,因此您可能会更快耗尽内存。您应该检查每种情况下存储了多少结果,看看是速度差异的问题还是String和StringBuffer之间的内存使用差异 -
我要补充一点,
StringBuffer在八年前在 Java 5.0 中被StringBuilder取代,但String今天仍在使用。 -
This 会让你看懂概念
标签: java string stringbuffer