当前位置: 首页 > 面试题库 >

Java变量的最终关键字

傅毅然
2023-03-14
问题内容

final关键字如何使变量不可变?维基百科说没有。


问题答案:

在Java中,术语 final 是指引用,而不 可变
是指对象。将final修饰符分配给引用意味着它不能更改为指向另一个对象,但是如果对象是可变的,则可以对其进行修改

例如:

final ArrayList<String> arr = new ArrayList<String>();
arr.add("hello"); // OK, the object to which arr points is mutated
arr = null; // Not OK, the reference is final and cannot be reassigned to

就像Wikipedia文章中提到的那样,如果您来自C ++,则必须分离出constinto final和不可变的概念。



 类似资料:
  • Java规范说:变量可以声明为final。最后一个变量只能分配一次。声明变量>final可以作为有用的文档,说明其值不会改变,并有助于避免编程>错误。 如果最后一个变量被赋值,除非它在赋值之前明确地没有赋值(§16)>,否则这是一个编译时错误。 空白final是其声明缺少初始值设定项的final变量。 null 如果你觉得这是一个愚蠢的问题,我很抱歉,但我要求你指出一个来源,我可以得到答案。 谢谢

  • 在Java8中,Java设计者提出了一个有效的final变量的概念,即一个如果被“final”追加就不会给编译器带来错误的变量。我的问题是,这个新提出的“有效最终”概念比经典的“最终”提供了什么?作为一名Java开发人员,我实际上得到了什么好处?

  • 问题内容: 任何人都可以告诉我在Java上下文中以下行的含义是什么: 除非变量是不可变的,否则仍然可以对其进行操作 据我所知,通过将任何变量声明为final,就无法再次对其进行更改,那么上一行中 不可变 一词的含义是什么? 问题答案: 这意味着,如果您的最终变量是引用类型(即不是像int这样的基元),则只有引用是不能更改的。不能使它引用不同的对象,但是如果类允许,它所引用的对象的字段仍可以更改。例

  • 问题内容: 将变量声明为的区别是什么 要么 如果我只希望变量是局部的,并且是常量(以后不能更改)? 谢谢 问题答案: 仅仅具有预期的效果。 声明static使其成为一个类变量,使其可以使用类名进行访问

  • 问题内容: 在VB.NET中,我们可以将变量名称括在方括号中,并使用关键字作为变量名称,如下所示: 相当于C#: 我想知道是否有Java相当于这样做? 问题答案: 不可以。您可以添加下划线或类似的废话,但是基本上关键字是不可行的。

  • 问题内容: 我有一个程序,其中有一个用户可以编辑的文本框。当用户按下按钮时,将创建一个对话框,显示用户的文本和确认“是/否”选项。 这段代码可以正常工作,但是我的第一个版本无法编译。我的IDE抱怨我不应该创建字符串 ,而应该这样做。 这让我开始思考。在这种情况下会增加什么?例如,如果我选择保留对Dialog的引用,并通过另一种方法显示它,该怎么办?这意味着上面的方法将返回。那么变量如何持续存在呢?