当前位置: 首页 > 知识库问答 >
问题:

在Java中定义最后一个字符串有意义吗?[副本]

邹斌
2023-03-14

可能重复:
字符串和Final

从…起http://docs.oracle.com/javase/6/docs/api/java/lang/String.html我可以读到:

Strings are constant; their values cannot be changed after they are created. 

这是否意味着最终字符串在Java中没有意义,因为最终属性在某种程度上是冗余的?

共有3个答案

萧献
2023-03-14

这是有道理的。Final关键字阻止将来分配给变量。以下将是java中的错误:

final String x = "foo";
x = "bar" // error on this assignment
勾起运
2023-03-14

final是指变量,而不是对象,所以是的,它是有意义的。

例如

final String s = "s";
s = "a"; // illegal
李锦
2023-03-14

字符串对象是不可变的,但它实际上是对字符串对象的引用,可以更改。

例如:

String someString = "Lala";

您可以重新分配此变量持有的值(使其引用不同的字符串):

someString = "asdf";

但是,有了这个:

final String someString = "Lala";

那么上述重新分配将是不可能的,并将导致编译时错误。

 类似资料:
  • 我想知道这样的声明在Java是否有某种真正的意义。我在代码中发现了它几千次,但是我学习和玩字符串,我知道无论你声明一个对象多少次:如果你之前的某个类声明了这个字符串,它就会被汇集并重用(我说的是没有显式构造函数调用而创建的字符串) 事实上,这段代码在调用比较时打印,因此两个变量引用同一个对象。说变量无法重新定义,在这种情况下单词完全没有用。我是不是没抓住重点? 还有几件事: 1 - 为什么显式调用

  • 主要内容:直接定义字符串,使用 String 类定义字符串是 Java 中特殊的类,使用方法像一般的基本数据类型,被广泛应用在 Java 编程中。Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个 String 类来创建和操作字符串。 在 Java 中定义一个字符串最简单的方法是用双引号把它包围起来。这种用双引号括起来的一串字符实际上都是 String 对象,如字符串“Hello”在编译后即成为 String 对象。因此也可以通

  • 问题内容: 从http://docs.oracle.com/javase/6/docs/api/java/lang/String.html中我可以读到: 从某种意义上说该属性是多余的,这是否意味着a 在Java中实际上没有意义? 问题答案: 该对象是不可变的,但实际上是对可以更改的对象的引用。 例如: 您可以重新分配此变量保存的值(以使其引用其他字符串): 但是,这样做: 然后,上述重新分配将是不

  • 本文向大家介绍去除字符串中最后一个指定的字符相关面试题,主要包含被问及去除字符串中最后一个指定的字符时的应答技巧和注意事项,需要的朋友参考一下

  • 让我来解释一下这个问题。我使用node-mongoDB本地作为mongob驱动程序,每次我需要通过_id字段进行查找查询时,我必须将其转换为ObjectId,如下所示: 我不想对每一个请求都使用ObjectID。到目前为止,我找到的唯一解决方案是将自定义ObjectID生成为字符串,如下所示: 在本例中,我将_id作为字符串,不需要分别将其转换为ObjectID。但我不知道这将如何影响查询性能。

  • 我遇到了一些哈希代码函数,它具有以下功能: 我不完全相信用于计算hashCode的方法,我知道使用质数通常会产生更好的分布。但在这个实现中,我并不真的相信是这样的。 例如,假设一个标准的哈希实现,我会错过0到17*31之间的所有桶。 是不是有些微妙的地方我没看出来?