StringBuffer
我知道和之间的技术差异StringBuilder
。
但是如果我半年左右不使用它们,我就会忘记哪个是同步的,哪个不是。我总是查找 JavaDoc 的第一句话。
那么:是否有某种易于记忆的助记符来区分它们?您如何记住差异?
StringBuffer
我知道和之间的技术差异StringBuilder
。
但是如果我半年左右不使用它们,我就会忘记哪个是同步的,哪个不是。我总是查找 JavaDoc 的第一句话。
那么:是否有某种易于记忆的助记符来区分它们?您如何记住差异?
1 StringBuffer 是较旧的实现。集合的旧实现也被同步。
现在如何记住缓冲区比 builder 更老?想一想,您将如何调用能够包含可以转换为字符串的字符缓冲区的类?答案是StringBuffer
。这就是 Sun Microsystem 的人最初开发这个类时的想法。
然后他们想为几乎相同的东西找到另一个名字,并记住它实际上实现了Builder
模式。后来 Pattern 变得更加流行,所以他们称之为新的类 Builder。
我希望这有帮助。
2 其他助记符。比较工作:缓冲区生成器
不同之处在于第三个字母是单词“first”的第一个字母。这意味着缓冲区是第一个
3 只需按字母顺序对这两个词进行排序:Buffer、Builder。缓冲区是第一位的,建造者是第二位的。因此缓冲区是同步的(见我故事的开头)
我认为新的异步类有更自然的名称。List
,一个定义明确的计算机科学概念,而不是Vector
. Map
,一个定义明确的数学概念,而不是Table
。Builder
,工厂类的通用名称,而不是Buffer
.
这个对我有用!