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

在Java中定义最终的String是否有意义?

吉玉宸
2023-03-14
问题内容

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

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

final String从某种意义上说该final属性是多余的,这是否意味着a 在Java中实际上没有意义?


问题答案:

String对象是不可变的,但实际上是对String可以更改的对象的引用。

例如:

String someString = "Lala";

您可以重新分配此变量保存的值(以使其引用其他字符串):

someString = "asdf";

但是,这样做:

final String someString = "Lala";

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



 类似资料:
  • 问题内容: 我正在读一本关于Java的书,它说您可以将整个类声明为final。我想不出我会在哪里使用它。 我只是编程的新手,我想知道程序员是否真的在他们的程序上使用了它。如果他们这样做了,他们什么时候使用它,以便我可以更好地理解它,并知道何时使用它。 如果Java是面向对象的,并且您声明了一个类final,它是否会停止具有对象特征的类的想法? 问题答案: 如果他们这样做了,他们什么时候使用它,以便

  • 问题内容: 我看到了一些这样的代码: 我以为应该有一个? 为什么这段代码这样做呢? 问题答案: 如果您希望当前执行的方法仍引发异常,同时允许适当地清理资源,则这很有用。下面是处理调用方法中的异常的具体示例。

  • 问题内容: 我正在Eclipse中进行学校项目的工作,当我尝试在 上使用方法时,Eclipse显示以下错误: 类型为String的方法isEmpty()未定义 我已经运行了Java更新,但仍在获取它。有什么原因会导致此 方法不确定? 问题答案: 在Java6中添加了String.isEmpty()。在早期版本中,可以 从Apache的commons-lang库中使用。StringUtils.isE

  • 可能重复: 字符串和Final 从…起http://docs.oracle.com/javase/6/docs/api/java/lang/String.html我可以读到: 这是否意味着最终字符串在Java中没有意义,因为最终属性在某种程度上是冗余的?

  • 在可能的副本上: 此线程不是在询问如何扩展类。它问为什么一个声明为的类可能会扩展另一个类。 从该线程: <code>final</code>类只是一个不能扩展的类。 但是,我有一个帮助程序类,我声明它是,并了另一个类: Eclipse没有检测到任何错误。我已经测试了这个类,并且PDF是成功生成的,没有错误。 为什么我能够课程,而理论上我不应该延长? (如果重要的话,我正在使用Java7。)

  • 问题内容: 是否有任何条件最终可能无法在Java中运行?谢谢。 问题答案: 注意:如果在执行try或catch代码时JVM退出,则finally块可能不会执行。同样,如果执行try或catch代码的线程被中断或杀死,即使整个应用程序继续运行,finally块也可能不会执行。 我不知道finally块无法执行任何其他方式…