当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《java中的immutable和final有什么区别?》经验,为你挑选了2个好方法。

我最近被问到这个问题.但是无法简明扼要地解释这两个概念的确切区别.

例如

最终和永恒:

final String name = "John";

如果我现在写

name = "Sam";

我会得到一个编译器错误

一成不变的:

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

有用.

我认为这解释了它在应用中的一部分.但是,我能否就这两个主题得到一个好的,易于理解的解释?



1> Mohammed Aou..:

final意味着您不能将对象的引用更改为指向另一个引用或另一个对象,但您仍然可以改变其状态(例如使用setter方法).其中immutable意味着对象的实际值无法更改,但您可以将其引用更改为另一个.

关于问题的第二部分(不变部分),编译器创建一个String值为"Sam" 的新对象,并指向name它的引用.



2> Vivek Singh..:

final确保对象的地址保持不变.当作为Immutable表明,我们不能改变的对象一旦创建的状态.

final只是一个关键字,Immutable而是一个模式.

如果您的第一个问题是您将变量标记为final,这意味着您将无法更改其内存地址,并且无法再次分配值.

如果您的第二个问题Immutable确保您无法更改您创建的对象的状态.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有