【发布时间】:2018-12-01 16:23:04
【问题描述】:
StringBuffer的SourceCode有一个变量toStringCache,但只有在toString()方法中才会得到一个值:
public synchronized String toString() {
if (toStringCache == null) {
toStringCache = Arrays.copyOfRange(value, 0, count);
}
return new String(toStringCache, true);
}
为什么不使用toString 像StringBuilder:
return new String(value, 0, count);
这种差异有什么特别的原因吗?
【问题讨论】:
-
你用的是什么java版本?
-
我不知道你为什么想知道这个,但是 StringBuilder 和 StringBuffer 之间的区别在于第一个不是线程安全的,并且在 java 1.5 中被引入作为 StringBuffer 使用时的替代品在一个线程中。我想实现差异与此有关。
-
@Aomine java1.8
-
@Juan 稍后我会看看版本记录
-
这里有一些有用的信息 --> stackoverflow.com/questions/46294579/…
标签: java