java中的immutable和final有什么区别?
最近有人问我这个问题。但是无法简明地解释究竟是什么将这两个概念区分开来。
例如
final String name = "John";
如果我现在写
name = "Sam";
我会收到编译器错误
String name = "John";name = "Sam";
有用。
我认为这解释了它在应用中的一部分。但是我可以对这两个话题得到一个很好的,易于理解的解释吗?
回答:
final
意味着您不能将对象的引用更改 ,但仍可以更改其状态(例如使用setter方法)。凡
意味着对象的 不能改变,但你可以改变它的引用到另一个。
关于问题的第二部分(不变性部分),编译器将创建一个String
值为“ Sam” 的新对象,并将其指向该对象name
。
以上是 java中的immutable和final有什么区别? 的全部内容, 来源链接: utcz.com/qa/403027.html