【问题标题】:StringBuilder vs. StringBuffer - mnemonic wanted [closed]StringBuilder vs. StringBuffer - 想要助记符[关闭]
【发布时间】:2012-02-12 16:25:21
【问题描述】:

我知道StringBuffer 和StringBuilder 之间的技术差异。

但是如果我半年左右不使用它们,我就会忘记哪个是同步的,哪个不是。我总是查找 JavaDoc 的第一句话。

那么:是否有某种易于记忆的助记符来区分它们? 你是怎么记住区别的?

【问题讨论】:

  • 写更多代码...
  • 我猜你早上也会纠结于“我把钥匙放在哪里了”这件事?
  • @Andrew LOL 两者一起形成了一幅漂亮而有趣的画面:-) 你能写出来作为答案吗? (用于奖励积分。)
  • @ThorbjørnRavnAndersen 我愿意,但是这类东西通常很快就会在某种框架中结束,然后使用。
  • 我不知道是否应该尝试在我的诗歌上建立我的 SO 代表。他们会禁止我,这是正确的!

标签: java stringbuilder stringbuffer


【解决方案1】:

1 StringBuffer 是较旧的实现。集合的旧实现也被同步。

现在如何记住缓冲区比 builder 更老?想一想,您将如何调用能够包含可以转换为字符串的字符缓冲区的类?答案是StringBuffer。这就是 Sun Microsystem 的人最初开发这个类时的想法。

然后他们想为几乎相同的东西找到另一个名称,并记住它实际上实现了Builder 模式。后来 Pattern 变得更加流行,所以他们称之为新的类 Builder。

我希望这会有所帮助。

2 其他助记词。比较作品: 缓冲 建设者

区别在于第3个字母是单词“first”的第一个字母。这意味着缓冲区是第一个

3 只需按字母顺序对这两个单词进行排序:Buffer、Builder。缓冲区是第一位的,建造者是第二位的。因此缓冲区是同步的(见我故事的开头)

【讨论】:

  • 我喜欢第一个,那个缓冲区更基础(因此也很旧),然后是构建器模式。
【解决方案2】:

我认为,新的异步类有更自然的名称。 List,一个定义明确的计算机科学概念,而不是Vector。 Map,一个定义明确的数学概念,而不是 Table。 Builder,工厂类的通用名称,而不是Buffer。

它对我有用!

【讨论】:

    猜你喜欢
    • 2011-04-16
    • 2015-12-13
    • 2011-06-06
    • 2017-05-27
    • 2011-02-27
    • 1970-01-01
    • 2016-07-13
    • 2010-09-26
    • 2023-03-04
    相关资源
    最近更新 更多