加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java中的immutable和final之间有什么区别?

发布时间:2020-12-14 05:20:22 所属栏目:Java 来源:网络整理
导读:我最近被问到这个问题.但是无法简明扼要地说明这两个概念是如何分开的. 例如 最后和不变: final String name = "John"; 如果我现在写 name = "Sam"; 我会得到编译器错误 一成不变的: String name = "John";name = "Sam"; 有用. 我认为这是在应用中的一部分
我最近被问到这个问题.但是无法简明扼要地说明这两个概念是如何分开的.

例如

最后和不变:

final String name = "John";

如果我现在写

name = "Sam";

我会得到编译器错误

一成不变的:

String name = "John";
name = "Sam";

有用.

我认为这是在应用中的一部分.但是我可以在这两个主题上得到一个很好的,容易理解的解释吗?

解决方法

final意味着您不能将对象的引用更改为指向另一个引用.其中immutable意味着实际对象的值不能被更改,但是可以将其引用改为另一个.

关于您的问题的第二部分(不可变部分),编译器将创建一个值为“Sam”的新的String对象,并将其引用给它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读