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