gpt4 book ai didi

java - 如果它是最终的那么为什么要放静态的?

转载 作者:太空狗 更新时间:2023-10-29 15:30:11 26 4
gpt4 key购买 nike

有时我会看到类似的东西:

public class MainActivity extends Activity
{
public static final String url_google = "http://www.google.com";

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

我实际上不明白的是,为什么使用 public static final 而不是 public finalfinal

最佳答案

我说的很广泛,但如果它是最终的,无论如何你只需要它的一个实例,所以它通过将它设为静态来节省内存。

更具体地说,final 关键字表示变量存储的任何内容都不能更改。这意味着一旦变量有了值,你就可以使用这个变量,但是你不能以任何方式修改它。通常,要为 final 变量赋值,您可以直接在声明中这样做,例如 final int variable = 12。如您所见,我在示例中使用了 int,但是您可以使用任何东西,包括引用变量。引用变量是特殊的,因为您不能更改变量指向的内容,但可以更改对象本身(例如使用 get/set 方法)。

归根结底,一旦你创建了一个 final 变量,它就会占用内存空间。既然我们不能进一步修改这个变量,为什么我们每次实例化我们的类时都要重新创建它呢?所以我们使用 static 关键字。这允许变量被创建一次,并且只在内存中创建一次。

但是,在某些特定情况下,您可能不想使用 static 而只使用 final。一个例子可能是时间敏感变量,例如存储对象实例化的时间。

关于java - 如果它是最终的那么为什么要放静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791425/

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