【问题标题】:Purpose of Immutable or Unmodifiable Collections不可变或不可修改集合的目的
【发布时间】:2017-11-14 15:10:37
【问题描述】:

不可变或不可修改的集合或对象的真正好处是什么?

作为程序员,我们尝试编写没有错误的代码,这样用户就无法破坏系统,而坏人也无法入侵系统。对我来说,不可变对象似乎试图防止程序员犯下愚蠢的错误。

还有更多的东西吗?

【问题讨论】:

  • 是的;这正是重点。程序员总是犯错。
  • 集合和简单对象类似:不需要复制以供额外使用,可以简单地共享对象引用,立即可以并发(无需成本机制)。您可以将对象作为键放在 Set 或 Map 中,而无需担心对象被更改,因此 set/map 被破坏(总子树/桶变得无法访问)。想想可变字符串会是什么。
  • 您将从以下 Wikipedia 文章中了解有关该概念的更多信息:en.wikipedia.org/wiki/Immutable_object 和阅读 Effective Java

标签: java collections guava


【解决方案1】:

不可变类和集合确实有助于避免多个线程尝试修改相同对象的并发问题。

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 2013-11-12
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2012-01-07
    • 2011-03-14
    相关资源
    最近更新 更多