您不会找到
java.lang包装必须是 不可变 的强制性原因。只是因为 这是设计决定 。他们本可以做出其他决定。语言设计师必须在 可变
和 不变 之间做出选择。他们选择了 不变的 。而已。
有一些 令人信服的 (IMO)原因尽管使它们 不可变 :
与一致
String。您所提供的同样的道理
String是 不变的 适用于
Integer等,以及(如想在属性映射端口号)。 这通常适用于
任何 可变类型。
不可变 类型排除了许多难以发现的错误,因为人们可以通过修改通过 吸气剂 获得的值来不由自主地更改对象成员值。 当类型 不可变
时,它可以节省大量防御性复制 。最臭名昭著的示例是
java.util.Date,通常很难使用,因为它是 易变的 (撇开API问题)。
不可变类型还允许使用共享实例,例如
Integer常用值的用法(请参阅参考资料
Integer.valueOf(int))。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)