栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java 什么是不变的?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 什么是不变的?

不可变是指一旦对象的构造函数完成执行,该实例将无法更改。

这很有用,因为它意味着你可以传递对对象的引用,而不必担心别人会更改其内容。尤其是在处理并发时,永远不变的对象没有锁定问题

例如

class Foo{     private final String myvar;     public Foo(final String initialValue)     {         this.myvar = initialValue;     }     public String getValue()     {         return this.myvar;     }}

Foo不必担心调用方

getValue()
可能会更改字符串中的文本。

如果你想象与相似的类

Foo
,但是成员带有
StringBuilder
而不是String,则可以看到的调用者
getValue()
将能够更改实例的
StringBuilder
属性Foo。

还要注意你可能会发现的各种不变性:埃里克·利珀特

(Eric Lippert)
撰写了一篇有关此的博客文章。基本上,你可以拥有其接口是不可变的对象,但是在幕后是实际的可变私有状态(因此不能在线程之间安全地共享)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号