gpt4 book ai didi

java - 我们应该什么时候使用 "public static final String"?

转载 作者:IT老高 更新时间:2023-10-28 20:40:56 24 4
gpt4 key购买 nike

我见过很多人写的代码 public static final String mystring = ...然后只使用一个值。

为什么他们必须这样做?为什么他们必须在使用之前将值初始化为 final

更新

好的,谢谢大家的回答,我理解这些键的含义(public static final)。我不明白的是为什么人们会使用它,即使常量只会在一个地方并且只在同一个类中使用。为什么要宣布它?为什么我们不只使用变量?

最佳答案

final 表示变量的值不会改变——也就是说,一个constant,它的值在声明之后就不能被修改。

当你想创建一个 String 时使用 public final static String:

  1. 属于类(静态:无需实例即可使用),即
  2. 不会改变(final),例如当您想要定义一个可用于类的所有实例和其他对象的 String 常量时使用类,以及
  3. 将成为该类向世界展示的界面中可公开访问的部分。

例子:

public final static String MY_CONSTANT = "SomeValue";

// ... in some other code, possibly in another object, use the constant:
if (input.equals(MyClass.MY_CONSTANT)

同样:

public static final int ERROR_CODE = 127;

要求使用final,但它可以防止在程序执行过程中不经意间改变一个常数,并作为一个指示变量是一个常数.

即使常量仅在当前类和/或仅在一个地方使用 - 读取 - 将所有常量声明为 final 也是一种好习惯:它更清晰,并且在生命周期内在代码中,常量最终可能会在多个地方使用。

此外,使用 final 可能允许实现执行一些优化,例如通过内联使用常量的实际值。

最后请注意,final 只会从原始类型、不可变的 String 或其他不可变类型中生成真正的常量值。将 final 应用到一个对象(例如 HashMap)将使 reference 不可变,但不是对象的状态:例如数据成员可以改变对象的属性,可以改变数组元素,可以操作和改变集合。

关于java - 我们应该什么时候使用 "public static final String"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com