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

回到顶部