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

如果Java中的String是final类的,那么我们为什么要改变它的值呢?[副本]

董品
2023-03-14

即使Stringfinal类,我们也可以像下面这样更改它的值:

String A = "hello";

下一步:

A = "World";

这里将更改A

而对于final变量,我们不能这样做:

final int a =10;
a = 13; //This Will Give Error

这将是一个矛盾。

共有1个答案

梁丘烨
2023-03-14

这是因为当类是final时,这意味着类的方法不能更改或重写。如果一个字段是final的,那么在赋值初始值之后就不能更改该值。

 类似资料:
  • 问题内容: 我对Maven快照的含义以及为什么要构建一个快照感到困惑。 问题答案: Maven中的快照版本尚未发布。 这个想法是,前一个版本(或任何其他版本)完成后,存在一个。那个版本可能会变成 。它基本上是“ 开发中”。这可能接近实际发行版,或相当遥远(0.9例如,发行后立即发行)。 “真实”版本和快照版本之间的区别在于快照可能会得到更新。这意味着今天下载的文件可能不同于昨天或明天下载的文件。

  • 如果我得到一个JWT并且我可以解码有效负载,那怎么会安全呢?难道我不能直接从报头中抓取令牌,解码并更改有效负载中的用户信息,然后用同样正确的编码秘密将其发回吗? 我知道他们必须是安全的,但我只是真的想了解技术。我错过了什么?

  • 问题内容: 我们通常使用关键字创建对象,例如: 字符串是对象,但是我们不能用来创建它们: 为什么是这样?我可以用做一个琴弦吗? 问题答案: 除了已经说过的内容外,Java中的字符串文字(即像Java 一样但不喜欢的字符串)是经过内插的-这意味着,每次引用时,你都将引用一个String实例,而不是一个新实例。每一次。因此,你将拥有: 但是如果你有 那么就有可能 (如果有人需要提醒,请务必使用比较字符

  • 我看了一下Java8与7相比的新闻,除了lambdas或新的时间框架等非常有趣的东西之外,我发现一个新特性(?)介绍了:默认方法。 我在这篇文章中发现了以下示例: 在我看来很奇怪。上面的代码看起来像一个具有已实现方法的类。那么,为什么要在一个接口中引入默认方法呢?这种做法的实际好处是什么? 在同一篇文章中,我读到了这样的解释: 为什么要在接口中添加方法?这是因为接口与它们的实现类耦合得太紧了。即在

  • 问题内容: Java中的原始类型是什么?为什么我经常听到不应该在新代码中使用它们的信息? 如果我们不能使用原始类型,那有什么选择呢?有什么更好的选择? 问题答案: 什么是原始类型? Java语言规范对原始类型的定义如下: JLS 4.8原始类型 原始类型定义为以下之一: 通过采用通用类型声明的名称而没有随附的类型参数列表而形成的引用类型。 数组类型,其元素类型为原始类型。 未从的超类或超接口继承s