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

不可变对象和有效不可变对象之间的区别?

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

不可变对象和有效不可变对象之间的区别?

不可扩展且其字段全部为

final
自身且不可变的类的实例是不可变的。

由于其方法的详细信息而无法更改其字段的类的实例实际上是不可变的。例如:

final class C {  final boolean canChange;  private int x;  C(boolean canChange) { this.canChange = canChange; }  public void setX(int newX) {    if (canChange) {      this.x = newX;    } else {      throw new IllegalStateException();    }  }}

的某些实例

C
实际上是不可变的,而有些则不是。

另一个例子是零长度数组。它们实际上是不可变的,即使它们的包含类不是可证明的不可变的,因为它们中没有元素可以更改。


Joe-
E使用验证程序来证明某些类仅允许不可变的实例。

Immutable
检查用标记器接口标记的所有内容,并将某些类
String
((由于它
char[]
不会逃逸,因此实际上是不可更改的))视为不可变的。

Joe-E:面向安全性的Java子集说

由Joe-E库定义的Immutable接口受到以下语言的特殊处理:Joe-
E验证程序检查实现此接口的每个对象都是(深度)不可变的,如果不能自动将其引发编译时错误。已验证。



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

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

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