【发布时间】:2017-11-14 15:10:37
【问题描述】:
不可变或不可修改的集合或对象的真正好处是什么?
作为程序员,我们尝试编写没有错误的代码,这样用户就无法破坏系统,而坏人也无法入侵系统。对我来说,不可变对象似乎试图防止程序员犯下愚蠢的错误。
还有更多的东西吗?
【问题讨论】:
-
是的;这正是重点。程序员总是犯错。
-
集合和简单对象类似:不需要复制以供额外使用,可以简单地共享对象引用,立即可以并发(无需成本机制)。您可以将对象作为键放在 Set 或 Map 中,而无需担心对象被更改,因此 set/map 被破坏(总子树/桶变得无法访问)。想想可变字符串会是什么。
-
您将从以下 Wikipedia 文章中了解有关该概念的更多信息:en.wikipedia.org/wiki/Immutable_object 和阅读 Effective Java
标签: java collections guava